프로그래밍/python
[Python] 최근 기사 자동화 하기
부단
2020. 10. 23. 07:01
728x90
[원하는 주제와 관련된 최근 기사를 크롤링해 보겠습니다.]
먼저 네이버 기사 검색 url양식을 따오면
(search.naver.com/search.naver?sm=tab_hty.top&where=news&query="+article)과 같은 양식임을 확인할 수 있습니다.
기사의 제목을 따기위해 양식을 확인하고 그에 맞는 정보를 가져옵니다. <코드 :16번줄>
따온 내용들이 모두 news_title로 들어가 있을텐데, 필요없는 내용들을 슬라이싱으로 잘라내 진짜 "제목"만 남깁니다.
import requests
from bs4 import BeautifulSoup
from datetime import datetime
article = str(input())
try:
url = "https://search.naver.com/search.naver?sm=tab_hty.top&where=news&query="+article
names = '네이버 기사'
data = []
articles = []
titles = []
articles_link = []
data_remove = []
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
news_titles = soup.select('.type01 li dt a[title]')
for title in news_titles:
title = str(title).split("title")[2]
title = str(title).split(">")[0]
title = str(title).replace("=","")
articles.append(title)
for href in soup.find("div", class_="news mynews section _prs_nws").find_all("ul"):
articles_link.append(href.find("a")["href"])
except:
article = "해당 기사를 찾을 수 없습니다."
names = "X"
articles[0] = "X"
articles[1] = "X"
articles[2] = "X"
articles_link[1] = "X"
articles_link[2] = "X"
articles_link[3] = "X"
print("{} 기사 관련 정보".format(article))
print("기사 제목:{} \n링크: {} \n기사 제목: {} \n링크: {} \n기사 제목: {} \n링크: {}".format(articles[0], articles_link[1], articles[1], articles_link[2],articles[2],articles_link[3]))
실행 결과입니다:
링크: 에 하이퍼 텍스트가 살아있어서 누르면 해당 기사로 이동됩니다.
※해당 사이트의 robots.txt를 찾아보면
User-agent: * Disallow: /search
이므로 이 포스팅은 공부 참고용으로만 사용해주시기를 권장합니다! ※