dios 관련 크롤링
*구현하고자 하는 기능
def google_search(keyword, n):
-11.19
=>해당 페이지까지의 제목 뽑아서 text로 저장하는 기능까지 구현하는 def 만들기 /11.19까지 / 완료!, Crawling/Google 폴더에 저장
*검색어를 입력할 때 whitespace(띄어쓰기)를 %20으로 처리하는 함수도 넣어줘야함; 일단은 그냥 whitespace로 들어가도 제대로 반응함/
+ 더 해야할일
*vim으로 파일을 만들어서 실행시킬수 있게(jupyter 말고도)완료
*이를 서버로 돌리는 방법
*제목 말고 다른것들 추출하는 방법 (+추후에 이를 alarm/ email로 보내는 방법까지도... -selenium?)
-------------------------
# 11.19 완료된 코드
import requests
from bs4 import BeautifulSoup
import datetime
now = datetime.datetime.now()
nowdate_time = now.strftime("%m-%d %H:%M")
GOOGLE_SEARCH_URL = "https://www.google.co.kr/search?q={keyword}&biw=1736&bih=860&ei=qzYvWLeTF4mm0gT2qbj4DQ&start={page_num}&sa=N"
keyword = input("키워드를 입력하세요:")
n = int(input("찾고자 하는 페이지 숫자를 입력하세요:" ))
with open("../../../../바탕화면/크롤링/GOOGLE/GOOGLE_{keyword}.txt".format(keyword=keyword),"a") as f:
f.write(nowdate_time+"\n")
for i in range(n):
URL = GOOGLE_SEARCH_URL.format(keyword=keyword,page_num=(i-1)*10)
response = requests.get(URL)
dom = BeautifulSoup(response.text, "html.parser")
css_selector = "h3.r a" # 제목 뽑아내는 selector
for i in dom.select(css_selector):
f.write(i.text+"\n")
-----------------------------------
=> 키워드에 대한 n번째 페이지까지 구글 검색 크롤링
• 시간; 현재 크롤링을 시행한 시간.
• 제목; 각 글에 대한 제목 크롤
• 내용; 각 글에서 보이는 내용만 크롤
• 날짜; 글이 써진 날짜
• url; 각 글의 url 크롤링
=> 1차 완료된 자료를 google_search_{keyword}{date}.text 로 내보내기
*추가적으로 구현하고자 하는 기능
-크롤링한 데이터 중 원하는 키워드를 가진 url로 들어가서 내용 긁어오기
=> 데이터 크롤링을 서버 컴퓨터로 특정 시간에 진행시키
*url
https://www.google.co.kr/search?q={검색어}espv=2&biw=1736&bih=860&ei=qzYvWLeTF4mm0gT2qbj4DQ&start={page_num}&sa=N
검색어 => 검색어 (whitespace: %20)
page_num: (n-1)*10
$ GOOGLE_SEARCH_URL.format(keyword=keyword,page_num=(n-1)*10)
#구글url format하는 코드
2페이지
https://www.google.co.kr/search?q={검색어}&ei=ajYvWKSEO4Hd0gSN967wCg&start=10&sa=N&biw=1736&bih=860
3페이지
https://www.google.co.kr/search?q={검색어}&espv=2&biw=1736&bih=860&ei=izYvWNuhDsWk0ASk75DIAg&start=20&sa=N
4페이지
https://www.google.co.kr/search?q={검색어}espv=2&biw=1736&bih=860&ei=qzYvWLeTF4mm0gT2qbj4DQ&start=50&sa=N
=> 페이지는 start={10, 20, 30} 그렇다면 첫번째 페이지는? 0
start=0: 1페이지 ...
start=(n-1)*10 : n페이지
=> url
https://www.google.co.kr/search?q={검색어}espv=2&biw=1736&bih=860&ei=qzYvWLeTF4mm0gT2qbj4DQ&start={page_num}&sa=N
검색어 => 검색어 (whitespace: %20)
page_num: (n-1)*10
*구현하고자
'backend > 데이터분석' 카테고리의 다른 글
02_1. 사람인, 스펙업(네이버 까페) 인턴 정보 통합 시스템 (selenium, python) (0) | 2016.12.15 |
---|---|
selenium을 통한 중고나라 크롤링 (1) | 2016.11.23 |
project02.까페알바 (0) | 2016.11.20 |
Numpy 복습 (0) | 2016.11.12 |
파이썬 데이터 라이브러리 - 수찬님 강의 1일차 복습 (1/2), 파이썬 기초 (0) | 2016.11.08 |