반응형
코드
# 네이버 실시간 검색어를
import xlsxwriter as xw
import requests
import bs4
naver = requests.get('https://www.naver.com/')
naver_bs = bs4.BeautifulSoup(naver.content, 'lxml')
span_list = naver_bs.find_all('span', class_='ah_k')
span_list = set(span_list)
realtime_list = []
for sp in span_list:
realtime_list.append(sp.text)
wb = xw.Workbook(r'C:\Users\Yang\Desktop\검색어 뉴스 데이터.xlsx')
for que in realtime_list:
ws = wb.add_worksheet(que)
page = 1
for i in range(1, page+1):
url = 'https://search.daum.net/search?w=news&sort=recency&q={}&cluster=n&DA=STC&s=NS&a=STCF&dc=STC&pg=1&r=1&p={}&rc=1&at=more&sd=&ed=&period='
real_url = url.format(que, i)
news = requests.get(real_url)
news_bs = bs4.BeautifulSoup(news.content, 'lxml')
news_list = news_bs.findAll('div', class_="cont_inner")
for i in range(len(news_list)):
ws.write(i,0, news_list[i].find('a').text)
ws.write(i,1, news_list[i].find('a')['href'])
ws.write(i,2, news_list[i].find('p').text)
wb.close()
이번 웹 크롤러는 네이버 실시간 검색어를 파싱해옵니다. 파싱해온 실시간 검색어로 다음에 기사를 검색하고 해당 결과를 엑셀 데이터로 저장합니다. 아래와 같은 결과가 나오는 것을 확인할 수 있습니다. 이러한 웹크롤러를 통해 손 쉽게, 텍스트 데이터를 수집할 수 있다는 것을 알게 되었습니다. 본인 업무와 필요에 맞게 수정 개발한다면, 좋을 것 같습니다.
코드 결과
시트에는 해당하는 검색어가 입력된 것을 확인할 수 있습니다. 그리고, 기사의 제목, url, 내용이 입력된 것을 확인 할 수 있습니다. 검색한 기사 페이지도 높이면, 더욱 많은 데이터를 가져올 수 있습니다.
반응형
'SW > Python' 카테고리의 다른 글
python : matplotlib : 한글 깨짐 현상 고치는 방법 (0) | 2019.10.17 |
---|---|
파이썬 : 스타벅스 서울 전체 지점 주소 크롤링하기 (0) | 2019.10.16 |
Python : 네이버 실시간 검색어 엑셀로 저장하기 (0) | 2019.10.14 |
Python : 가장 빠른 JSON 라이브러리 선택 방법 (0) | 2019.10.06 |
파이썬 : 딥러닝 퍼셉트론 예제 따라하기 (0) | 2019.09.18 |