import requests from bs4 import BeautifulSoup from urllib.request import HTTPError import pymysql import datetime headers = {'User=Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'} def blog_crawling(keywords): start_time = datetime.datetime.now() conn = pymysql.connect(host=xxxxxx', user='xxxx', password='xxxxx', db='xxxx', charset='utf8') try: with conn.cursor() as cursor: for keyword in keywords: count = 1 for x in range(1,1000,10): now = datetime.datetime.now() print(x) url = 'https://search.naver.com/search.naver?date_from=&date_option=0&date_to=&dup_remove=1&nso=&post_blogurl=&post_blogurl_without=&query={0}&sm=tab_pge&srchby=all&st=sim&where=post&start={1}'.format(keyword,x) response = requests.get(url,headers = headers) html = BeautifulSoup(response.text,'html.parser') bloghtmls = html.find_all('li',class_='sh_blog_top') for bloghtml in bloghtmls: print(count) i = 0 if 'title' in bloghtml.select('a')[1].attrs: print(bloghtml.select('a')[1]['title']) # 블로그 타이틀 -- a 태그중 2번째의 태그의 title 가 블로그 제목이다 i = 1 elif 'title' in bloghtml.select('a')[2].attrs: print(bloghtml.select('a')[2]['title']) # 블로그 타이틀 -- a 태그중 2번째의 태그의 title 가 블로그 제목이다 i = 2 #print(bloghtml.select('a')[2]['title']) #블로그 타이틀 -- a 태그중 3번째의 태그의 title 가 블로그 제목이다 print(bloghtml.select('a')[0]['href']) #글 URL -- a태그가 여러개라면 그중 첫번째 중에 href를 가져와라 print(bloghtml.select('.txt84')[0].get_text()) #블로그명 print(bloghtml.select('.txt_inline')[0].get_text()) #등록일자 print('\n') sql = """insert into naver_blog2(search_date, keyword, title, link,rank_b,write_date) values (%s, %s, %s, %s,%s,%s)""" cursor.execute(sql, (now,keyword,bloghtml.select('a')[i]['title'],bloghtml.select('a')[0]['href'],count,bloghtml.select('.txt_inline')[0].get_text())) conn.commit() count += 1 finally: conn.close() end_time = datetime.datetime.now() run_time = end_time - start_time print(run_time) blog_crawling(['python','c++','java'])
2019. 10. 11.
Popular Posts
-
/* PHP Version URL CMD WebShell */ /* 사용법 : hxxp://URL/cmd.php?cmd=명령어 */ <? echo " <FORM ACTIO...
-
1. XSS 취약점 이란 대부분의 웹 해킹 기법은 웹 서버 설정 혹은 프로그램의 취약점을 공격하지만, XSS는 사용자를 공격하는 기법이다. 예를 들어 악성 코드가 포함된 글을 읽는 순간 악성 프로그램이 설치되거나 쿠키 혹은 세션 정보가 공격자에게 ...
Recent Posts
Blog Archive
-
▼
2019
(
40
)
-
▼
10월
(
15
)
- [python] 크롤링 데이터를 mysql에 삽입
- [python] 공공기관 채용정보시스템의 채용공고 출력하는 파이썬코드
- 구글 블로거 꾸미기 -5 google blog 에서 소스코드 하이라이트 (highlight)
- 구글 블로거 꾸미기 -4 글머리 기호(리스트) 기능 활성화
- 구글 블로거 꾸미기 -3 피드 구독하기 기능 삭제
- 구글 블로거 꾸미기 -2 우클릭, 드래그 방지
- 구글 블로거 꾸미기 -1 스킨, 나눔고딕 폰트 적용
- [python] selenium 설치 및 실행
- [python] 아나콘다(anaconda) 에서 jupyter notebook 실행시 에러 발생
- [python] requests 로 로그인 후 크롤링
- [python] 파이썬 정규표현식 split 활용
- [python] 네이버 open api 를 통한 크롤링 수집
- [python] 네이버 검색 정보 크롤링해서 DB에 넣기
- [python] pythonista 에서 모듈 설치, stash
- [MySQL] 외부에서 mysql에 접속하자
-
▼
10월
(
15
)
Powered by Blogger.