使用 PHP/YQL 从雅虎首页抓取数据


Using PHP/YQL to scrape data from Yahoo's front page

如果某些术语出现在雅虎首页的十大"热门话题"列表中,我希望收到通知。 我创建了一个小脚本,使用 file_get_contents('http://www.yahoo.com')解析首页;然后使用正则表达式对其进行解析。这有效,但它很脆。如果他们稍微改变一下html怎么办?

我想以正确的方式执行此操作并获得与XML相同的信息。所以我考虑使用 YQL。我找到了正确的查询:

http://query.yahooapis.com/v1/yql?q=select%20*%20from%20timesense.trending%20where%20locale%3D'en-US'&diagnostics=true

但是我不太明白如何使用它来提出我的请求,因为我收到一个 Oauth 错误。

$request = "http://query.yahooapis.com/v1/yql?q=select%20*%20from%20timesense.trending%20where%20locale%3D'en-US'&diagnostics=true"; 
$session = curl_init($request);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$list = curl_exec($session);
echo $list;

给我这个错误:

请提供有效的凭据。OAuth oauth_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", realm="yahooapis.com"请提供有效的凭据。OAuth oauth_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", 领域="yahooapis.com"

现在我知道我需要创建一个访问密钥/API 密钥。我现在有一个。我只是不知道如何包含它。我看到的所有示例都是针对社交应用程序,我会请求用户的登录名/密码。我想要的只是使用 PHP 将这 10 件事的列表作为 XML。我能做些什么来得到这个?我的下一步应该是什么?

一些 YQL 表需要"两条腿"OAuth,基本上意味着请求上的签名。我对这个答案的评论应该有助于解释所需的签名步骤:如何开始使用 YQL 的 oauth 获取历史股票数据?