使用PHP / YQL从Yahoo的首页获取数据

时间:2012-06-12 20:14:18

标签: php oauth yahoo yql

如果某些条款出现在首页的雅虎前十大“趋势主题”列表中,我希望收到通知。我创建了一个小脚本,使用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“&安培;诊断=真

但是我不太明白如何使用它来提出我的请求,因为我收到了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列表。我该怎么做才能得到这个?我的下一步应该是什么?

1 个答案:

答案 0 :(得分:0)

某些YQL表需要“双腿”OAuth,基本上意味着请求上的签名。我对这个答案的评论应该有助于解释所需的签名步骤: How do I get started with oauth for YQL for historical stock data?