商务服务
利用python爬取谷歌趋势某个关键词的每日搜索次数
2024-11-01 00:40

      大家好,我是带我去滑雪!本期尝试利用python爬取谷歌趋势某个关键词的每日搜索次数。

利用python爬取谷歌趋势某个关键词的每日搜索次数

目录

1、什么是谷歌趋势

2、爬取谷歌趋势的搜索次数有何用

3、代码如何实现

(1)导入相关模块

(2)解析页面结构

(3)循环爬取

(4)调用函数并初始化

(5)部分结果展示

     谷歌趋势(Google Trends)是由谷歌提供的一个免费的在线工具,它可以显示特定关键词或主题在一段时间内的搜索兴趣变化趋势。谷歌趋势可以帮助用户了解全球范围内或特定地区的搜索热度,以及相关的搜索查询和趋势。下面是谷歌趋势的一些主要功能和特点

  1. 搜索兴趣趋势:谷歌趋势可以显示特定关键词或主题在一段时间内的搜索兴趣变化趋势。用户可以通过输入关键词或主题,查看其搜索频率随时间的变化趋势。结果以图表形式展示,用户可以选择不同的地区和时间范围进行比较和分析。

  2. 相关查询和主题:谷歌趋势还提供了与搜索关键词或主题相关的查询和主题建议。这些相关查询和主题可以帮助用户了解与关键词相关的其他搜索查询和话题,从而更全面地了解用户的兴趣和需求。

  3. 地域和语言分布:谷歌趋势可以显示特定关键词或主题的搜索热度在不同地区和语言上的分布情况。用户可以选择特定的国家、地区或语言,以获得相关搜索兴趣的地域分布信息。这对于市场调研、媒体策划和地区关注度分析非常有用。

  4. 热门搜索:谷歌趋势提供了热门搜索功能,显示当前热门的搜索关键词或主题。这可以让用户了解当前社会热点、事件或话题的搜索趋势和兴趣。

爬取谷歌趋势中某个关键词的搜索次数可以具有以下用途

  1. 市场调研:了解特定关键词的搜索次数可以提供对市场需求和用户兴趣的洞察。通过分析搜索次数的趋势和变化,可以评估某个产品、服务或行业的受欢迎程度和潜在市场规模。这对于制定营销策略、产品定位和市场竞争分析非常有用。

  2. SEO优化:搜索引擎优化(SEO)是提高网站在搜索引擎结果页上排名的过程。了解特定关键词的搜索次数可以帮助网站拥有者确定哪些关键词受到用户关注,并针对这些热门关键词进行内容优化。通过优化网站内容和关键词的选择,可以增加网站的曝光度和流量。

  3. 广告投放:知道特定关键词的搜索次数可以帮助广告主确定广告投放的目标受众和市场规模。根据关键词的搜索次数,可以优化广告投放的定位和策略,以提高广告的点击率和转化率。

  4. 舆情监测:特定关键词的搜索次数可以反映当前的热点事件、话题或社会关注度。通过监测关键词的搜索次数和变化,可以及时掌握公众舆论的走向和用户兴趣的变化。这对于品牌管理、危机公关和舆情分析非常有帮助。

(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)部分结果展示

date搜索次数Climate change_monthlyisPartialscaleClimate change2017/1/11313FALSE0.131.692017/1/21717FALSE0.172.892017/1/31919FALSE0.193.612017/1/42222FALSE0.224.842017/1/52424FALSE0.245.762017/1/62626FALSE0.266.762017/1/71818FALSE0.183.242017/1/81717FALSE0.172.892017/1/92828FALSE0.287.842017/1/102727FALSE0.277.292017/1/113636FALSE0.3612.962017/1/123535FALSE0.3512.252017/1/132727FALSE0.277.292017/1/141818FALSE0.183.24

需要数据集的家人们可以去百度网盘(永久有效)获取

链接
提取码:2138 

更多优质内容持续发布中,请移步主页查看。

若有问题可邮箱联系:1736732074@qq.com 

博主的WeChat:TCB1736732074

有任何问题,欢迎私信博主

   点赞+关注,下次不迷路

 

    以上就是本篇文章【利用python爬取谷歌趋势某个关键词的每日搜索次数】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/8079.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
云南网络营销软件哪个好?权威推荐助您快速选择
在数字化时代,网络营销软件成为了许多企业实现营销目标的重要工具。然而,市面上网络营销软件琳琅满目,选择一个适合自己的并不
宫崎骏的时代结束了
在《你想活出怎样的人生》之前,宫崎骏一直是著名的退休诈骗犯。七次退休又七次复出,年过八旬,创作欲还是旺盛到令人害怕。然而
个人大数据信用查询平台哪个更准确一些?蘑菇画像个人大数据信用报告查询平台更好用
个人大数据信用查询平台哪个更准确一些?蘑菇画像个人大数据信用报告查询平台更好用,个人大数据信用查询平台市面上还是比较多的
小红书关键词热度查询!国风大潮下,品牌怎么玩出花样、玩出水平?
国风,是当下年轻人钟爱的潮流。汉服穿搭、文物手办、国潮仿妆……频频出圈。“民族的就是世界的”,国风的影响力可谓深远,一说
app推广接单发布平台哪个好?怎么领取任务赚钱?
最近几年,随着互联网的快速发展,利用网络兼职的赚钱方式也呈现越来越火,非常受大众欢迎的趋势。而且其种类也非常多:微商、社
【可打印】文学常识常考100题汇总,初中生练一练!(部编版初中语文)
关注本公众号,私信发送数字:2493,领取电子打印版文学常识1、成语“万事俱备,只欠东风”是根据《三国演义》________ (战役)
“迎旅发大会 游美丽望城”望城首届文旅短视频大赛,最高3万奖励等你来拿!
湘江水浩浩奔腾,流淌沧桑巨变。铜官窑静穆肃然,在这里诉说着望城的厚重历史,流传着“君生我未生,我生君已老”凄美爱情故事;落日
mysql导入大txt文件怎么打开_mysql怎么导入txt文件?
有时候我们在使用mysql数据库的时候,想导入txt文本文档,要怎么操作呢?下面本篇文章就来给大家介绍一下方法
寸头抖音短视频教程_人开始衰老的迹象是什么
岁月不饶人,我才50出头,可是许多衰老迹象已经越来越明显,惹得中医闺蜜笑话这样的我。1、觉得右后背和肩膀疼,出现“五十肩”
什么是网站页脚:以及最佳页脚设计示例
主体内容外,网站还包括页眉和页脚,用于帮助访问者的特定目的。由于我们认为网站页脚设计同样重要,我们整理了10个最佳免费网站
本企业新闻

点击拨打: