大家好,我是带我去滑雪!本期尝试利用python爬取谷歌趋势某个关键词的每日搜索次数。
目录
1、什么是谷歌趋势?
2、爬取谷歌趋势的搜索次数有何用?
3、代码如何实现?
(1)导入相关模块
(2)解析页面结构
(3)循环爬取
(4)调用函数并初始化
(5)部分结果展示
谷歌趋势(Google Trends)是由谷歌提供的一个免费的在线工具,它可以显示特定关键词或主题在一段时间内的搜索兴趣变化趋势。谷歌趋势可以帮助用户了解全球范围内或特定地区的搜索热度,以及相关的搜索查询和趋势。下面是谷歌趋势的一些主要功能和特点:
-
搜索兴趣趋势:谷歌趋势可以显示特定关键词或主题在一段时间内的搜索兴趣变化趋势。用户可以通过输入关键词或主题,查看其搜索频率随时间的变化趋势。结果以图表形式展示,用户可以选择不同的地区和时间范围进行比较和分析。
-
相关查询和主题:谷歌趋势还提供了与搜索关键词或主题相关的查询和主题建议。这些相关查询和主题可以帮助用户了解与关键词相关的其他搜索查询和话题,从而更全面地了解用户的兴趣和需求。
-
地域和语言分布:谷歌趋势可以显示特定关键词或主题的搜索热度在不同地区和语言上的分布情况。用户可以选择特定的国家、地区或语言,以获得相关搜索兴趣的地域分布信息。这对于市场调研、媒体策划和地区关注度分析非常有用。
-
热门搜索:谷歌趋势提供了热门搜索功能,显示当前热门的搜索关键词或主题。这可以让用户了解当前社会热点、事件或话题的搜索趋势和兴趣。
爬取谷歌趋势中某个关键词的搜索次数可以具有以下用途:
-
市场调研:了解特定关键词的搜索次数可以提供对市场需求和用户兴趣的洞察。通过分析搜索次数的趋势和变化,可以评估某个产品、服务或行业的受欢迎程度和潜在市场规模。这对于制定营销策略、产品定位和市场竞争分析非常有用。
-
SEO优化:搜索引擎优化(SEO)是提高网站在搜索引擎结果页上排名的过程。了解特定关键词的搜索次数可以帮助网站拥有者确定哪些关键词受到用户关注,并针对这些热门关键词进行内容优化。通过优化网站内容和关键词的选择,可以增加网站的曝光度和流量。
-
广告投放:知道特定关键词的搜索次数可以帮助广告主确定广告投放的目标受众和市场规模。根据关键词的搜索次数,可以优化广告投放的定位和策略,以提高广告的点击率和转化率。
-
舆情监测:特定关键词的搜索次数可以反映当前的热点事件、话题或社会关注度。通过监测关键词的搜索次数和变化,可以及时掌握公众舆论的走向和用户兴趣的变化。这对于品牌管理、危机公关和舆情分析非常有帮助。
(1)导入相关模块
from datetime import date, timedelta
from functools import partial
from time import sleep
from calendar import monthrange
import pandas as pd
from pytrends.exceptions import ResponseError
from pytrends.request import TrendReq
(2)解析页面结构
def get_last_date_of_month(year: int, month: int) -> date:
return date(year, month, monthrange(year, month)[1])
def convert_dates_to_timeframe(start: date, stop: date) -> str:
return f"{start.strftime('%Y-%m-%d')} {stop.strftime('%Y-%m-%d')}"
def _fetch_data(pytrends, build_payload, timeframe: str) -> pd.Dataframe:
attempts, fetched = 0, False
while not fetched:
try:
build_payload(timeframe=timeframe)
except ResponseError as err:
print(err)
print(f'Trying again in {60 + 5 * attempts} seconds.')
sleep(60 + 5 * attempts)
attempts += 1
if attempts > 3:
print('Failed after 3 attemps, abort fetching.')
break
else:
fetched = True
return pytrends.interest_over_time()
def get_daily_data(word: str,
start_year: int,
start_mon: int,
stop_year: int,
stop_mon: int,
geo: str = '',
verbose: bool = True,
wait_time: float = 5.0) -> pd.Dataframe:
start_date = date(start_year, start_mon, 1)
stop_date = get_last_date_of_month(stop_year, stop_mon)
pytrends = TrendReq(hl='zh-CN', tz=360)
build_payload = partial(pytrends.build_payload,
kw_list=[word], cat=0, geo=geo, gprop='')
monthly = _fetch_data(pytrends, build_payload,
convert_dates_to_timeframe(start_date, stop_date))
(3)循环爬取
results = {}
current = start_date
while current < stop_date:
last_date_of_month = get_last_date_of_month(current.year, current.month)
timeframe = convert_dates_to_timeframe(current, last_date_of_month)
if verbose:
print(f'{word}:{timeframe}')
results[current] = _fetch_data(pytrends, build_payload, timeframe)
current = last_date_of_month + timedelta(days=1)
sleep(wait_time)
daily = pd.concat(results.values()).drop(columns=['isPartial'])
complete = daily.join(monthly, lsuffix='_unscaled', rsuffix='_monthly')
(4)调用函数并初始化
start_year = 2022
start_month = 1
stop_year = 2022
stop_month = 3
keyword = "warming"
data = get_daily_data(keyword, start_year, start_month, stop_year, stop_month)
data.to_excel(r"E:工作硕士博客二次数据数据64.xlsx")
(5)部分结果展示
需要数据集的家人们可以去百度网盘(永久有效)获取:
链接:
提取码:2138
更多优质内容持续发布中,请移步主页查看。
若有问题可邮箱联系:1736732074@qq.com
博主的WeChat:TCB1736732074
有任何问题,欢迎私信博主!
点赞+关注,下次不迷路!
以上就是本篇文章【利用python爬取谷歌趋势某个关键词的每日搜索次数】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/8079.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多