- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试:
我在 (1) 中取得了成功,但在 (2) 中没有取得成功。我从 Google 返回了一个授权 token ,并将其与随后的请求一起发送给趋势,但谷歌随后返回错误:“您必须登录才能从 Google 趋势导出数据”:
// http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html
$data = array(
'accountType' => 'GOOGLE',
'Email' => 'my.email@gmail.com',
'Passwd' => 'my.password',
'service' => 'trendspro',
'source' => 'company-application-1.0'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPAUTH, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches);
// We now have an authorization-token
$headers = array(
"Authorization: GoogleLogin auth=" . $matches[1],
"GData-Version: 3.0"
);
curl_setopt($ch, CURLOPT_URL, "http://www.google.com/trends/viz?q=MSFT&date=2011-2&geo=all&graph=all_csv&sort=0&sa=N");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, false);
$csv = curl_exec($ch);
curl_close($ch);
// Returns : "You must be signed in to export data from Google Trends"
// Expected: CSV data stream
print_r($csv);
出于某种原因,我发送给 Google Trends 的授权 token 没有被接受或忽略。我不知道到底发生了什么,因为没有给出额外的错误信息。
有没有人看到我做错了什么?如果你能让它工作,这意味着谷歌正在返回 CSV 数据,那么赏金就是你的了,我们都有一份迟到的圣诞礼物:-)
所以我发现问题与 cURL 无关。我所做的是:
SID=DQAAAMUAAADMqt...aYPaYniC_iW
LSID=DQAAAMcAAACI5...YDTBDt_xZC9
Auth=DQAAAMgAAABm8...trXgqNv-g0H
GData-Version: 3.0
Authorization: GoogleLogin auth=DQAAAMgAAABm8...trXgqNv-g0H
标题:
Date: Tue, 27 Dec 2011 00:17:20 GMT
Content-Encoding: gzip
Content-Disposition: filename=trends.csv
Content-Length: 97
X-XSS-Protection: 1; mode=block
Server: Google Trends
X-Frame-Options: SAMEORIGIN
Content-Type: text/csv; charset=UTF-8
Cache-Control: private
数据:
You must be signed in to export data from Google Trends
换句话说,我正在发送 Google 在 http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html 上定义的 header 但没有运气获得适当的返回。互联网上*没有*关于此的信息。谁知道这里有什么问题?
最佳答案
检查您的代码后,问题是 Google Trends 需要 SID
key 而不是 Auth
。这是我编写的用于下载 csv 的代码
<?php
header('content-type: text/plain');
// Set account login info
$data['post'] = array(
'accountType' => 'HOSTED_OR_GOOGLE', // indicates a Google account
'Email' => '', // full email address
'Passwd' => '',
'service' => 'trendspro', // Name of the Google service
'source' => 'codecri.me-example-1.0' // Application's name, e.g. companyName-applicationName-versionID
);
$response = xhttp::fetch('https://www.google.com/accounts/ClientLogin', $data);
// Test if unsuccessful
if(!$response['successful']) {
echo 'response: '; print_r($response);
die();
}
// Extract SID
preg_match('/SID=(.+)/', $response['body'], $matches);
$sid = $matches[1];
// Erase POST variables used on the previous xhttp call
$data = array();
// Set the SID in cookies
$data['cookies'] = array(
'SID' => $sid
);
这使用了我的 xhttp class ,一个 cURL 包装器。
关于php - 尝试登录 Google 以下载 Google 趋势数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8626362/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 4 年前。 Improve
我有一个名为 LOGENTRY 的简单表,其中包含名为“DATE”和“COST”的字段。示例: +--------------+-------+ | DATE | COST | +-
我有一个每小时运行一次的 cron 作业。 cron 作业向表 'update' 添加一条记录 table - 'update' update_id (primary) timestamp 和 将我网
我正在使用 Bokeh 制作趋势图,显示概念的流行程度如何随时间变化。我使用了 brewer 示例 ( https://docs.bokeh.org/en/latest/docs/gallery/st
所以我想做的是制作一个趋势算法,我需要有关 SQL 代码的帮助,因为我无法让它运行。 该算法包含三个方面:(我对更好的趋势算法的想法完全开放) 1.Plays during 24h / Total p
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
开发 Twitter Connect 应用程序并通过 URL 获取趋势: https://api.twitter.com/1.1/trends/closest.json?lat=42&long=36
我对时间序列异常检测非常陌生,所以我的问题对你们中的一些人来说可能是显而易见的。今天,我使用 lstm 和聚类技术来检测时间序列上的异常,但这些方法无法识别随着时间的推移慢慢恶化的异常(我认为这称为趋
我正在寻求[博客]的帮助:http://www.androidhive.info/2012/01/android-json-parsing-tutorial/解析 twitter 趋势 JSON 文件
我有一个网站,人们可以在其中添加他们喜欢的电视节目。 我想要一些趋势统计数据。示例: (1 个不变)生活大爆炸 (上周第 3 次)老爸老妈浪漫史 (上周第 2 个)房子 (上周第 30 位,上涨 40
我有一个带有 DatetimeIndex 和 ohlcv 股票报价列的 pandas Dataframe。我想提取满足特定阈值的价格波动/趋势:大于 0.3 美元的上升趋势/趋势和超过 -0.3 美元
尝试仅访问多伦多趋势的“名称”部分。到目前为止我有这个但是它给我错误: toronto = t.get_place_trends(id=4118) trend_array = [] for trend
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我尝试在我的网络应用程序中实现 Google 趋势。这是我的代码: using (var client = new WebClient()) { var us
我最近将 Junit 和 Emma 集成到 CruiseControl (CC) 中,因此它可以为每个构建创建漂亮的报告。我想根据 Emma 提供的一些信息(例如覆盖率百分比数字和摘要)查看一些趋势图
我正在尝试将谷歌趋势嵌入到我的代码 vuejs 中,但我找不到任何关于如何做到这一点的信息。 我尝试一下: export default { created(){ posts
我对此有点新手...基本上我需要运行一个脚本来从谷歌趋势下载.csv 文件。我按照这个reference写了下面的代码,代码如下: HttpClient client = new Defau
我正在使用非官方 Google Trends API ( https://github.com/GeneralMills/pytrends#trend ) 编写代码,但是在几乎 10 个请求之后,我收
我一直使用破折号作为 css 类和 ID 名称的分隔符: .about-us .car-pricing-guide 我见过网站使用多个下划线 __ .home__content 此外,我还看到了 2
很抱歉提出这个问题,但我已经在这个问题上停留了一段时间。 基本上我正在尝试列出一个列表: numbers=[1, 2, -1, -2, 4, 5] 并将此列表子集化为显示正/负运动(或趋势)的列表列表
我是一名优秀的程序员,十分优秀!