无需包装器或使用 API 即可访问 Google 趋势数据:Python

2023-11-21

我正在尝试编写一个 Python 程序来从 Google Trends (GT) 收集数据 - 具体来说,我想自动打开 URL 并访问折线图中显示的特定值:

enter image description here

我很乐意下载 CSV 文件,或者通过网络抓取值(根据我对 Inspect Element 的阅读,清理数据只需要简单的拆分或两次)。我有很多想要进行的搜索(很多不同的关键字)

我正在创建许多 URL 来从 Google 趋势收集数据。我使用了测试搜索中的实际 URL。网址示例:在浏览器上实际搜索该 URL 会显示相关的 GT 页面。当我尝试通过程序访问它时,问题就出现了。

我看到的大多数回复都建议使用 Pip 的公共模块(例如 PyTrends 和“非官方 Google Trends API”)——我的项目经理坚持认为我不使用不是由网站直接创建的模块(即:API 是可以接受的,但只能官方 Google API)。只有 BeautifulSoup 被批准为插件(不要问为什么)。

下面是我尝试过的代码示例。我知道这是基本的,但最重要的是first我收到的请求:

HTTPError:HTTP 错误 429:未知”:请求太多。

对其他问题的一些答复提到了 Google Trends API - 这是真的吗?我找不到任何有关官方 API 的文档。

这是另一篇文章,概述了我尝试过但对我不起作用的解决方案:

https://codereview.stackexchange.com/questions/208277/web-scraping-google-trends-in-python

url = 'https://trends.google.com/trends/explore?q=sports%20cars&geo=US'

html = urlopen(url).read()

soup = bs(html, 'html.parser')

divs = soup.find_all('div')

return divs

它使用您可以在网络选项卡中找到的 API

import requests
import json

r = requests.get('https://trends.google.com/trends/api/widgetdata/multiline?hl=en-GB&tz=-60&req=%7B%22time%22:%222018-05-29+2019-05-29%22,%22resolution%22:%22WEEK%22,%22locale%22:%22en-GB%22,%22comparisonItem%22:%5B%7B%22geo%22:%7B%22country%22:%22US%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22sports+cars%22%7D%5D%7D%7D%5D,%22requestOptions%22:%7B%22property%22:%22%22,%22backend%22:%22IZG%22,%22category%22:0%7D%7D&token=APP6_UEAAAAAXO-yaYekqJ7Tf2nuoLBAigMSW7axoLTL&tz=-60')
data = json.loads(r.text.lstrip(")]}\',\n"))

for item in data['default']['timelineData']:
    print(item['formattedAxisTime'], item['value'])

我们可以取消对 url 的引用,以便更好地了解发生了什么:

import urllib.parse

url = 'https://trends.google.com/trends/api/widgetdata/multiline?hl=en-GB&tz=-60&req=%7B%22time%22:%222018-05-29+2019-05-29%22,%22resolution%22:%22WEEK%22,%22locale%22:%22en-GB%22,%22comparisonItem%22:%5B%7B%22geo%22:%7B%22country%22:%22US%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22sports+cars%22%7D%5D%7D%7D%5D,%22requestOptions%22:%7B%22property%22:%22%22,%22backend%22:%22IZG%22,%22category%22:0%7D%7D&token=APP6_UEAAAAAXO-yaYekqJ7Tf2nuoLBAigMSW7axoLTL&tz=-60'
print(urllib.parse.unquote(url))

这产生:

'https://trends.google.com/trends/api/widgetdata/multiline?hl=en-GB&tz=-60&req={"time":"2018-05-29+2019-05-29","resolution":"WEEK","locale":"en-GB","comparisonItem":[{"geo":{"country":"US"},"complexKeywordsRestriction":{"keyword":[{"type":"BROAD","value":"sports+cars"}]}}],"requestOptions":{"property":"","backend":"IZG","category":0}}&token=APP6_UEAAAAAXO-yaYekqJ7Tf2nuoLBAigMSW7axoLTL&tz=-60'

您需要探索其中的元素如何可转移。

例如,我查看了搜索词banana结果是这样的:

未引用:

'https://trends.google.com/trends/api/explore?hl=en-GB&tz=-60&req={"comparisonItem":[{"keyword":"banana","geo":"US","time":"today+12-m"}],"category":0,"property":""}&tz=-60'

quoted:

'https://trends.google.com/trends/api/explore?hl=en-GB&tz=-60&req=%7B%22comparisonItem%22:%5B%7B%22keyword%22:%22banana%22,%22geo%22:%22US%22,%22time%22:%22today+12-m%22%7D%5D,%22category%22:0,%22property%22:%22%22%7D&tz=-60'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需包装器或使用 API 即可访问 Google 趋势数据:Python 的相关文章

  • 尽管极其懒惰,但如何在 Python 中模拟 IMAP 服务器?

    我很好奇是否有一种简单的方法来模拟 IMAP 服务器 例如imaplib模块 在Python中 without做很多工作 是否有预先存在的解决方案 理想情况下 我可以连接到现有的 IMAP 服务器 进行转储 并让模拟服务器在真实的邮箱 电子
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数

随机推荐

  • .NET 字符串的最大可能长度是多少?

    NET 中可以创建的最长字符串是多少 的文档String据我所知 班级对这个问题保持沉默 因此权威的答案可能需要一些内部知识 64 位系统上的最大值会发生变化吗 这更多是出于好奇而不是实际用途 我不打算创建任何使用巨大字符串的代码 理论限制
  • Elastic Search:如何编写多语句脚本?

    我将值存储在 Elasticsearch 索引的文档中 我需要对这些值进行一些日期操作并返回一个布尔值以在过滤器中使用 该脚本涵盖了几行 但我无法运行它 我已经编写了其他运行良好的单个脚本 但是我对 Groovy 知之甚少 对 Elasti
  • 在 razor 语法中嵌入 javascript 变量

    我有一个看起来像这样的方法 function endcall click leadid document location Url Action index dispo new id leadid 当然它不起作用 因为它将 leadid 视
  • 为什么这个GridBagLayout没有按计划出现?

    我试图达到所需的最终结果在 GridBagLayout 中设置任意宽度 为了方便参考 这里是 这是当前的结果 表格中显示按钮数量和行数1 1 后跟列数 2 为该单元格声明 正如你所看到的 它以按钮开始1 1 3 和在它下面1 2 4 宽度相
  • iTextSharp - 裁剪 PDF 文件 (C#)

    我想使用 iTextSharp 和矩形 0 1000 600 155 裁剪 PDF 文件 一切都很好 当您打开创建的 pdf 文件时 您只能看到裁剪后的内容 但是 如果您解析该 pdf 仍然存在来自文档不可见部分的信息和文本 我无法接受 我
  • ModuleNotFoundError:没有名为“poetry.console”的模块

    已安装poetrylib 当我添加到pyproject toml下一个设置 tool poetry dynamic versioning enable true vcs git style pep440 我收到错误 Traceback mo
  • Linux 的 syslog_r?

    各位 我找不到适用于 Linux 的 syslog 的可重入版本 有吗 如果没有 你会怎么做 显而易见的答案是将日志记录工具移至单独的线程中并序列化对系统日志的访问 根据POSIX规范 syslog函数已经是线程安全的 因此在Linux中实
  • 十六进制浮点文字

    是否可以在 C 中使用十六进制浮点值初始化浮点变量 像这样的东西 double d 0x011 1 wrong 技术规格P0245 C 的十六进制浮点数已于 2016 年 2 月在佛罗里达州杰克逊维尔的 ISO C 标准委员会投票进入 C
  • 过滤包含自定义对象的 NSArray

    I have UISearchBar UITableView 一个返回 a 的 Web 服务NSMutableArray包含这样的对象 Food h Food NSObject NSString foodName int idFood pr
  • 是什么导致 SQL Server 返回消息“语句已终止”?

    我有一个非常简单的 INSERT 语句 它是从 Linux Apache Web 服务器上运行的 PHP 脚本执行的 我可以在 SQL Management Studio 中正常运行查询 并且通常在 PHP 中也可以正常运行 但是 每隔一段
  • 如何使用 FromBody 在 POST 上返回无效的 JSON 消息?

    我正在使用 Net 4 5 1 使用 MVC 6 创建 ASP Net 5 应用程序 我有一个 POST 方法 它使用 FromBody 参数自动获取对象 HttpPost public IActionResult Insert FromB
  • 如何从xsd生成xpath?

    如何从 xsd 生成 xpath XSD 验证 xml 我正在一个项目中工作 我使用 java 从 xsd 生成示例 XML 然后从该 XML 生成 xpath 如果有任何方法可以直接从 xsd 生成 xpath 请告诉我 这可能有用 im
  • Zoo/xts - 无法对 1 细胞子集进行数学计算? R 挂起

    我在 Windows 上使用最新版本的 R xts zoo R 2 15 xts 0 8 6 zoo 1 7 7 我看到以下奇怪的行为 以前的版本没有这种情况 library xts data sample matrix sample xt
  • c中的##是什么?

    我看过这个片段 define kthread create threadfn data namefmt arg kthread create on node threadfn data 1 namefmt arg 什么是 代表 是什么意思
  • 如何在 asp:GridView 中启用就地编辑?

    我如何添加编辑框 并在提交期间读取它们的值 使用asp Repeater 我有一个asp GridView它显示只读 即不可编辑 数据集 例如 我怎样才能启用的单元格GridView可编辑 例如 Photoshop Mockup Note
  • CUDAfy.NET 给出 Win32Exception:系统找不到指定的文件

    我已经添加了对CUDAfy NET通过 NuGet 的库
  • 确定实体是否是新的而不检查@Id

    有没有办法确定给定的实体类 Entity class A String name boolean method Object anyEntity How can I check here if this entity is complete
  • 从 Java 配置中使用 Spring 动态语言支持

    我想用动态语言支持Spring框架 在 XML 中我只需使用lang命名空间 但我想使用 Java 配置 即 Configuration类 only 我可以想象我可以通过初始化所有内容来做到这一点org springframework sc
  • 行锁 - 手动使用它们

    我基本上有一个应用程序 它有 5 个线程 每个线程都从表中读取 该查询是一个简单的 SELECT TOP 1 from the table 但我想强制执行锁定 以便下一个线程将从表中选择下一条记录 而不是锁定的记录 当应用程序完成其任务时
  • 无需包装器或使用 API 即可访问 Google 趋势数据:Python

    我正在尝试编写一个 Python 程序来从 Google Trends GT 收集数据 具体来说 我想自动打开 URL 并访问折线图中显示的特定值 我很乐意下载 CSV 文件 或者通过网络抓取值 根据我对 Inspect Element 的