활용3. 웹스크래핑(0825-0829)/requests5 스크래핑 2-3 네이버 주식 (csv 모듈 ) 네이버 주식 (테이블->csv 모듈) import csv --> csv.writer(f) , writer.writerow(title) writer.writerow(리스트형데이터) 파일쓰기 : filename = "시가총액1-200.csv" f = open(filename, "w", encoding="utf-8-sig", newline="") writer = csv.writer(f) 엑셀에서 한글 깨질 때, utf-8-sig 로 newline="" 이 없으면, row 마다 빈 줄이 추가됨. 탭 기준으로 split :: title .split('\t") 빈 줄 skip( td colspan="10" 같은..의미없는 줄은 출력X ) --> if len(columns) tbody->find_all("tr") -.. 활용3. 웹스크래핑(0825-0829)/requests 2022. 8. 28. 스크래핑 2-2 다음 영화 이미지 저장( requests ) DAUM 영화. 이미지 저장 페이지 반복 응용 -> in range(2015,2020) http: 없는 url 에 http:// 붙이기 --> if image_url.startswith("//") 추출한 이미지 url 로 다시 접속! --> requests.get(url) 과 raise_for_status() 파일 쓰기(이미지 저장) with open("파일명".format(변수), "wb") as f: f.write(image_res.content) 반복횟수 제한해서, 상위 top 5 만 추출 --> if idx >= 4: break import requests from bs4 import BeautifulSoup # for year in range[2018:2023]: for year in range.. 활용3. 웹스크래핑(0825-0829)/requests 2022. 8. 28. 스크래핑 2-1 쿠팡 (User-Agent 헤더) 쿠팡 실습 헤더옵션에 User-Agent 외 추가 정보 필요. 문제는 헤더옵션만으로도 접속이 안돼서, 거의 하루 순삭하고, 스트레스 이뽜이. 답도 쉽게찾기가 어려웠다. ㅠ ( 이런 문제 하나 발생하면, 하루 순삭 ㅠ ) 이를 제외하면, 접속트러블만 없다면, 쉽지만 뿌듯한 예제 (대형사이트는 접속이 문제긴 하다. ㅠ ) soup.find_all 에서 블록을 선택시, 반복하는 가장 상위 객체를 선택하기. re.compile() 사용 : 이 예시에서는 필수적이지 않음 페이지 반복 --> in range(1,6) enumerate 함수 사용 if 조건문 : 텍스트 포함과 참/거짓 import requests from bs4 import BeautifulSoup import re # headers = { # "A.. 활용3. 웹스크래핑(0825-0829)/requests 2022. 8. 28. 스크래핑 1 : 웹툰 가우스 전자 평균 매우 기초적인 예제지만 재밌었다. 기초 문법에서 평균내는건 아무런 감흥이 없었는데 +_+ 가우스 전자 평점 구하기 import requests from bs4 import BeautifulSoup url = "https://comic.naver.com/webtoon/list.nhn?titleId=675554" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") # cartoons = soup.find_all("td", attrs={"class":"title"}) # title = cartoons[0].a.get_text() # link = cartoons[0].a["href"] # print(title).. 활용3. 웹스크래핑(0825-0829)/requests 2022. 8. 27. 스크래핑 0. 기초 requests, headers , re, BeautifulSoup HTML, XPath, 정규식 BeautifulSoup4 : 네이버 웹툰, 가우스 전자, 쿠팡, 다음 CSV : 네이버 금융 Selenium 네이버 로그인, 네이버 항공권, 구글무비 Headless 크롬, Wrap Up 웹사이트 접속 후, 전체 text 읽어오기 import requests res = requests.get("http://google.com") res.raise_for_status() print("응답코드 :", res.status_code) #200이면 정상 # print(len(res.text)) # print(res.text) with open("mygoogle.html", "w", encoding="utf8") as f: f.write(res.text) # if res.status.. 활용3. 웹스크래핑(0825-0829)/requests 2022. 8. 25. 이전 1 다음