728x90
#크롤링 개인 PJT 내용
# 네이버에서 오늘 서울의 날씨정보를 가져온다. ==>crawl_weather()
def crawl_weather():
print("[날씨정보]")
url="https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%94%A8"
res=requests.get(url)
res.raise_for_status()
soup=BeautifulSoup(res.text,"html")
cur_temp=soup.find("div",{"class","temperature_text"}).get_text()
print(cur_temp)
min_temp=soup.find("span",{"class":"lowest"}).get_text()
print(min_temp)
max_temp=soup.find("span",{"class":"highest"}).get_text()
print(max_temp)
print()
#헤드라인 뉴스 5건을 가져온다. ==>craw_hdlie()
def crawl_headline_news():
print("="*50)
print("[헤드라인뉴스]")
idx=1
url="https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=100"
html=urllib.request.urlopen(url)
soup=bs4.BeautifulSoup(html,"html")
#href 부분
hdline=soup.find("ul",{"class":"section_list_ranking_press _rankingList"})
lis=hdline.findAll("li")
for li in lis:
#클래스 부분
a=li.find("a",{"class":"list_tit nclicks('rig.renws2')"})
print(idx,a.text.strip())
print(a.get('href'))
print()
idx +=1
#관심있는 분양의 뉴스5건을 가져온다.[정치/경제/사회/문화/IT/...]==>craw_it()
def crawl_like_news():
print("="*50)
print("[관심분야 뉴스]")
idx=1
url="https://sports.news.naver.com/index"
html=urllib.request.urlopen(url)
soup=bs4.BeautifulSoup(html,"html")
#href 부분
sport=soup.find("ul",{"class":"today_list"})
lis=sport.findAll("li")
for li in lis:
a=li.find("a",{"class":"link_today"})
print(idx,a.text.strip())
print("https://sports.news.naver.com"+a.get('href'))
print()
idx +=1
#기타 실시간 뉴스 분야 2가지 이상 ==>craw_it()
def crawl_live_news():
print("="*50)
print("[실시간 뉴스]")
idx=1
url="https://www.fnnews.com/newsflash"
html=urllib.request.urlopen(url)
soup=bs4.BeautifulSoup(html,"html")
#href 부분
live=soup.find("ul",{"class":"list_news"})
lis=live.findAll("li")
for li in lis:
a=li.find("a",{"class":"link_news"})
print(idx,a.text.strip())
print("https://sports.news.naver.com"+a.get('href'))
print()
idx +=1
# 실행부
if __name__=="__main__":
crawl_weather()
crawl_headline_news()
crawl_like_news()
crawl_live_news()
728x90
댓글