from bs4 import BeautifulSoup
import requests
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = "https://datalab.naver.com/keyword/realtimeList.naver?age=20s"
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
rank = 1
# span - item_title
results = soup.findAll('span','item_title')
print(response.text)
search_rank_file = open("rankresult.txt","a")
from datetime import datetime
print(datetime.today().strftime("%Y년 %m월 %d일의 실시간 검색어 순위입니다.\n"))
for result in results:
search_rank_file.write(str(rank)+"위:"+result.get_text()+"\n")
print(rank,"위 : ",result.get_text(),"\n")
rank += 1
파이썬의 라이브러리인 Beatiful Soup 는 웹 크롤링을 위한 라이브러리 입니다.
원리는 웹에서 특정한 html 태그를 가져와 원하는 데이터만 골라서 볼수 있게 됩니다.
가장 먼저 라이브러리를 불러옵니다.
from bs4 import BeautifulSoup
import requests
여기서 requests 모듈이란, HTTP페이지에 요청을 보내고, 요청에 대한 데이터를 받아올수 있는 함수를 가졌습니다.
다음으로 현재는 사라졌지만, 과거에 있었더 네이버 실시간 검색어 페이지를 크롤링 한다면,
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = "https://datalab.naver.com/keyword/realtimeList.naver?age=20s"
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
rank = 1
?age=20s 를 제외한 앞 url은 공통부분이고, 해당 데이터를 크롤링하기위한 웹사이트를 변수에 저장하고,
requests 를 통해서 get 요청을 보내고 요청받은 데이터를 response 에 저장한다.
다음으로 BeautifulSoup 함수를 통해 얻어온 데이터를 text로, html.paser라는 전용 해석기로 새로운 변수에 저장합니다.
# span - item_title
results = soup.findAll('span','item_title')
print(response.text)
search_rank_file = open("rankresult.txt","a")
from datetime import datetime
print(datetime.today().strftime("%Y년 %m월 %d일의 실시간 검색어 순위입니다.\n"))
for result in results:
search_rank_file.write(str(rank)+"위:"+result.get_text()+"\n")
print(rank,"위 : ",result.get_text(),"\n")
rank += 1
그 뒤에 예시는 예전 사이트를 기준으로 작성한 글이라 가져오지 못했지만, html 의 span item_title 에 각각의 실시간 검색어의 내용이 담겨있는것을 확인할수 있었다. 추후 실시간 검색어 말고도 다른 사이트를 웹 크롤링을 하여 더욱 자세한 예시를 작성할 예정이다.
그 후로는 파일을 생성후 담고 출력. 후에 더 자세한 예시로 포스팅 할 예정이다.
'TIL > Python' 카테고리의 다른 글
파이썬 Email 전송 - smtplib (0) | 2022.09.17 |
---|---|
파이썬 오늘의 날씨 API (0) | 2022.09.17 |
파이썬 자동 번역기능 googletrans (0) | 2022.09.17 |