一、Related Queries
(一)什么是Related Queries
(二)执行结果
(三)代码
安装 pip install pytrends
import pandas as pd from pytrends.request import TrendReq pytrend = TrendReq() pytrend.build_payload(kw_list=['china']) related_queries = pytrend.related_queries() keywords = related_queries.values() print(keywords)
二、Google Keyword Suggestions
(一)什么是Google Keyword Suggestions
(二)执行结果
不过执行不太稳定,有时会报连接错误,可能是无法访问google的原因。
(三)代码
import pandas as pd from pytrends.request import TrendReq pytrend = TrendReq() keywords = pytrend.suggestions(keyword='Mercedes Benz') df = pd.DataFrame(keywords) df.drop(columns= 'mid') # This column makes no sense print(df)
代码二:
import pandas as pd from pytrends.request import TrendReq def get_google_keywords(keyword): pytrend = TrendReq() keywords = pytrend.suggestions(keyword=keyword) df = pd.DataFrame(keywords) if len(df)>0: df1 = df.title return df1 else: return None
(四)存在问题:
1.遇到“Condole belt”这样中间有空格的词取不到结果?不是空格原因,是本来就没有数据。
2. 延时报错
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='trends.google.com', port=443): Read timed out. (read timeout=5)
不必慌张,造成这个问题的原因并不是我们的环境配置有问题,只是“连接超时”而已,重新执行代码就可以了。
3.429代码
pytrends.exceptions.ResponseError: The request failed: Google returned a response with code 429.
429 代表Too Many Requests (太多请求)
当你需要限制客户端请求某个服务的数量,也就是限制请求速度时,该状态码就会非常有用。在此之前,有一些类似的状态码。例如“509 Bandwidth Limit Exceeded”。
如果你希望限制客户端对服务的请求数,可使用 429 状态码,同时包含一个 Retry-After 响应头用于告诉客户端多长时间后可以再次请求服务。
参考:https://github.com/Tanu-N-Prabhu/Python/blob/master/Google_Trends_API.ipynb
https://betterprogramming.pub/get-google-trends-results-using-python-a983e228209c