안녕하세요.
오늘은 파이썬으로 구글 검색 관련 API에 대해 공부해보는 시간을 가져보겠습니다.
파이썬 구글 검색 API, pytrends & requests
▣ 구글 트렌드 API 사용하기
- 안타깝게도 Google은 일일 인기 검색 키워드에 액세스하기 위한 API를 제공하지 않습니다. Google은 비즈니스 이익을 보호하기 위해 비공개로 유지하기에 구글 트렌드 API를 활용해야 합니다.
- Google Trends API를 활용하여 시간 경과에 따른 검색어의 인기도에 대한 정보를 검색할 수 있습니다.
- 아래는 pytrends 라이브러리를 사용하여 Google 트렌드에서 검색어의 인기도, 트렌드를 알아내는 방법의 예입니다.
: 파이썬 pytrends
pip install pytrends
pip install plotly
- pytrends & plotly 라이브러리를 install하고 주식과 저축에 대한 검색어 트렌드를 비교해보겠습니다.
from pytrends.request import TrendReq
import plotly.express as px
# 한국어, 한국시간기준
# timezone: https://forbrains.co.uk/international_tools/earth_timezones -> KST Korea Standard Time 540
# hl = host language, tz = timezone
pytrends = TrendReq(hl='ko', tz=540)
kw_list=['주식', '저축']
# 5년간 비교
pytrends.build_payload(kw_list, cat=0, timeframe='today 5-y', geo='KR', gprop='')
# Interest Over Time
data = pytrends.interest_over_time()
interest_over_time_df = data.reset_index()
# 표 그리기
figure = px.line(interest_over_time_df, x="date", y=kw_list, title="구글 트렌드")
figure.show()
: 파이썬 구글 검색 상위 제목 뽑기
- 구글에서 검색하고 상위 3개 페이지 제목을 갖고 오기 위해서는 구글 검색 엔진에 request하여 구조를 받아오고 Beautifulsoup으로 parsing하는 방법이 있습니다.
import requests
from bs4 import BeautifulSoup
def get_google_search_titles(query):
# make a GET request to the Google search page
url = f"https://www.google.com/search?q={query}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
}
response = requests.get(url, headers=headers)
# parse the HTML content of the page
soup = BeautifulSoup(response.text, "html.parser")
# find the search result titles
titles = [a.text for a in soup.find_all("h3", class_="LC20lb MBeuO DKV0Md")]
# return the first 3 titles
return titles[:3]
# example usage
query = "주식"
titles = get_google_search_titles(query)
for title in titles:
print(title)
## 결과
'''
주식 - 나무위키:대문
한국 주식시장 - Investing.com
네이버 증권 - NAVER
'''
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 워드 클라우드 시각화 (WordCloud) (4) | 2023.03.22 |
---|---|
[Python] GPT & 구글 검색으로 보고서 쓰기 (2) | 2023.02.25 |
[Python] 파일명 일괄 변경하기 (2) | 2022.12.25 |
[Python] 일정 시간마다 자동 실행하기 (schedule) (6) | 2022.12.23 |
[Python] 이미지 합치기 (0) | 2022.12.18 |
댓글