【问题标题】:cURL shows different html then what is rendered in the browsercURL 显示不同的 html,然后是在浏览器中呈现的内容
【发布时间】:2015-02-09 22:37:14
【问题描述】:

我尝试使用 cUrl 从远程站点获取数据,但我在屏幕上看到的文本没有出现在返回的源代码中。

示例。

我明白了:

9.99 美元

真正的html是:<span class="any" id="price">$9.99 USD</span>

返回的带有cUrl的html为:<span class="any" id="price">{price}</span>

我尝试了很多 cUrl 选项,结果总是一样。

【问题讨论】:

  • 目标 HTML 页面是否使用某种 javascript 功能将{price} 等标签替换为$9.99 USD
  • 看起来像 Angular 这样的库会做的事情,它正在等待一个事件来填充价格。不确定您是否能够使用 curl 获得价格。您是否考虑过尝试使用 JavaScript 来做到这一点?

标签: php html curl


【解决方案1】:

来自cURL FAQs

许多网页使用嵌入式 Javascript 来做一些神奇的事情。 Curl 和 libcurl 没有对此的内置支持,因此它会像任何其他内容一样被处理。

如果你还想走同样的路:

实现一个Javascript解释器,人们已经成功使用了 Mozilla Javascript 引擎过去

【讨论】:

  • 我不确定。我在我的桌面上使用启用了 Javascript 的 Mozilla Firefox 浏览器,并且在“查看页面源代码”时我得到了相同的结果。
  • 网址是否公开?我可以测试它吗? URL 是否可能需要登录(或随后将 cookie 与 cURL 请求一起发送)?
  • 在这种情况下返回的代码是 >{0}/ {1}
  • 找到了!转到源代码,检查第 246 行!有用于根据某些参数更改货币的 javascript 代码。最后,它是一些正在使用的javascript! tokenizedHtml = html.replace(/\{0\}/gi, val); 这将替换“{0}”,下一行使用一些 jQuery 将其设置到 DOM 中。
  • 但是...我如何使用 cUrl 获取这些数据?
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2017-05-03
相关资源
最近更新 更多