【问题标题】:web scraping to extract dollar price网络抓取以提取美元价格
【发布时间】:2016-02-06 07:09:27
【问题描述】:

我正在使用简单的 dom 解析器 (php) 从以下位置提取美元价格: http://www.lanacion.com.ar/dolar-tarjeta-t50462

<div class="numero floatFix">
     <p class="peso">$</p>
     <p id="dTarjeta" class="valor x35">
         12,920
     </p>

但我得到的是后续字符“-”而不是“12,290”。我使用的代码是:

$url_to_traverse = 'http://www.lanacion.com.ar/dolar-tarjeta-t50462';
$html = file_get_html($url_to_traverse);
foreach($html->find('#dTarjeta') as $element)
{
   var_dump($element->text());
}

我做错了什么? 希望有一个解决方案,因为我尝试了很多库...

【问题讨论】:

标签: php screen-scraping


【解决方案1】:

这是因为,#dTarjeta 中的数据是在页面加载后使用 javascript 提供的。即,当file_get_html函数读取url时,这就是它的样子:

    <p id="dTarjeta" class="valor x35">-</p>

很明显,在页面加载后,#dTarjeta 中的文本会使用 javascript 使用 ajax 调用或类似的方法进行更改(Havent 检查过它)。

所以你的问题的答案是,你得到了正确的输出,因为 PHP 无法使用客户端 javascript 呈现页面,它只呈现服务器首先发送的内容。

我建议您使用 Phantomjs 或类似的技术来抓取此类页面。

使用 : view-source:http://www.lanacion.com.ar/dolar-tarjeta-t50462 验证这一点

此外,您还可以使用这个 stackoverflow 问题:Scrape web pages in real time with Node.js 以供参考。

此外,如果您更喜欢使用其他来源获取货币价值,请考虑使用

  1. http://fixer.io/ - 免费 JSON API。
  2. https://openexchangerates.org/ - 一样
  3. 雅虎财经 API

此链接将帮助您使用 PHP 处理 JSON API。 Get data from JSON file with PHP

【讨论】:

  • 非常感谢!我正在考虑寻找提供api而不是抓取的网站...不会使用节点,但我打算考虑使用...您知道一个好的托管站点吗?...我不支持的那个; vaa 我应该问...谢谢
  • 抱歉来晚了,我不在。您需要什么托管网站?如果你想要实时价格数据,有几个 API。我将相应地编辑答案。如果答案有帮助,请将其标记为正确答案 :-) 以便其他人更容易节省时间。
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 2022-09-24
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2020-06-20
  • 2023-03-26
相关资源
最近更新 更多