【问题标题】:PHP - Load HTML from a fully loaded external pagePHP - 从完全加载的外部页面加载 HTML
【发布时间】:2016-07-17 22:04:06
【问题描述】:

我是 AJAX 和 php 的新手,一直试图弄清楚如何使用 PHP HTML DOM Parser 从外部站点获取 html。但是,获取的 html 是立即加载到 DOM 中的,我需要稍后通过 Javascript 包含在页面中的元素。如何使用 PHP 获取后者。

示例:当我使用解析器加载时:http://csgo.exchange/id/76561198078821986 左侧 h3 标签中的大数值是“0.00”,因为 h3 标签以“0.00”的值加载到 dom 中,然后通过 Javascript 修改为实际值。如何获取真正的价值?

【问题讨论】:

  • 注意:我的 h3 不是 0.00。是170157.72,js不改。它带有 html。

标签: javascript php jquery ajax parsing


【解决方案1】:

您不能在该页面上使用 PHP Parser 的原因是它不运行 javascript,只运行 HTML。

如果您坚持从该页面获取数据,您将需要像 PhantomJS 这样的无头浏览器

否则获取数据的方法是查找 javascript 从何处获取数据并传递相同的变量。

在你的情况下是:http://csgo.exchange/inventory/76561198078821986/retry/

您现在可以改为使用 PHP HTML 解析器解析此 URL 并获取您需要的值。

要遵守的一个好规则是始终尝试以最原始的形式查找数据,例如htmljson。 Chrome 的网络标签是您最好的朋友。

【讨论】:

  • 难以置信!我可能会高兴地哭泣。我理解正确吗?通过分析 Chrome 控制台中的“网络”选项卡,您发现该页面正在从“csgo.exchange/inventory/76561198078821986/retry”加载数据?这是一种普遍适用的方法吗?
  • 是的。网络选项卡将显示在初始页面加载后加载的所有其他内容,包括 js、css 和图像。您可以选择 XHR 仅过滤 ajax 内容。
猜你喜欢
  • 2014-08-09
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多