Home >  > 利用Google Trends获得相关关键词

利用Google Trends获得相关关键词

一、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

本文暂无标签