【问题标题】:Using PHP/YQL to scrape data from Yahoo's front page使用 PHP/YQL 从 Yahoo 的首页抓取数据
【发布时间】:2012-06-12 20:14:17
【问题描述】:

如果某些术语出现在雅虎首页的前 10 个“热门话题”列表中,我希望收到通知。我创建了一个小脚本,使用 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_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", realm="yahooapis.com"请提供有效凭据。身份验证 oauth_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", 领域="yahooapis.com"

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

【问题讨论】:

    标签: php oauth yahoo yql


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多