当我从Google趋势查询(例如here)下载CSV时,我看到了一个HTTP GET请求
https://www.google.com/trends/api/widgetdata/multiline/csv
与params
req:{"time":"2012-02-18 2017-02-18","resolution":"WEEK","locale":"en-GB","comparisonItem":[{"geo":{},"complexKeywordsRestriction":{"keyword":[{"type":"BROAD","value":"trump"}]}}],"requestOptions":{"property":"","backend":"IZG","category":0}}
token:APP6_UEAAAAAWKm9N57FxjXrnfxhxhe5SEax6DyR97sY
tz:-120
req和tz参数有意义,但我不确定如何生成令牌。有人可以向我解释这是从哪里来的吗?我是否需要使用oauth2包来创建这些令牌?
答案 0 :(得分:3)
为结果小部件生成此标记,每个小部件都有自己的标记。
此令牌来自何处?
当页面https://trends.google.com/trends/explore?q=trump打开时,会向https://trends.google.com/trends/api/explore发送一个Ajax GET
请求,其中包含查询参数:
在此Ajax请求的响应中,有一个widgets
字段,其中包含所有结果窗口小部件数据。每个小部件都有一个唯一的令牌:
当触发下载CSV 操作时(在特定小部件上,GET
请求https://trends.google.com/trends/api/widgetdata/multiline/csv),该小部件的token
信息将被提取并作为查询参数:
请注意响应中的令牌和下载csv请求中的令牌是相同的(对于相同的小部件)。
如何生成令牌?
理论上,所有随机和唯一的字符串都可以用作令牌来保护小部件。谷歌可能有自己的算法。