php - dom完成后如何解析javascript加载的内容

标签 php javascript parsing dynamic

我一直致力于解析来自 wow armory 的一些数据,但遇到了一些障碍。当涉及到提供玩家获得的成就的网站时,它使用 javascript 来控制一个字符串,例如 #73:1283 来显示请求的信息。 (这个数字是我编的,但是请求的数据是这样格式化的)。

  1. 是否可以从需要 javascript 的页面中提取数据以使用 php 显示其数据?
  2. 如何使用 php 解析 dom 准备好或完成后加载的站点数据?

最佳答案

通过使用 Firebug,我能够查看 HTTP header 以查看正在进行哪些 AJAX 调用以生成这些页面上的内容:http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement#96:14861http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement#96

看起来页面正在异步调用以加载此页面:http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement/14861当散列后的部分为 96:14861 时,调用 http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement/96当哈希后的部分仅为 96 时。这两个页面都返回可以解析以呈现 HTML 的 XML。

所以一般来说,如果哈希后面只有一个数字,就把http://.../achievement/<number here>作为网址。如果有两个数字,则将第二个数字放在 URL 的末尾。

您需要做的不是提取 Javascript 并对其进行解释,而是自己在 PHP 中向这些 URL 发出 HTTP 请求(例如使用 cURL)并自行解析数据。

我强烈建议您学习 JavaScript 和 jQuery,因为如果不了解后台发生的所有 AJAX 加载,您将很难真正构建一个从 WoW Armory 提取信息的好网站。

关于php - dom完成后如何解析javascript加载的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5785887/

相关文章:

ios - Swift 将 JSON 解析为模型对象

php - 如何在 docker 容器上部署 php-fpm 并在 localhost (Ubuntu) 上部署 apache/nginx

php - 复杂的PHP数组逻辑

php - Wamp apache 未更改 wamp 菜单中的版本

javascript - 如何通过XMLHttpRequest GET方法向django传递信息?

javascript - 存储许多客户端 Javascript 静态变量的最佳实践

javascript - 工具提示的最后更新 Bootstrap 脚本不起作用

javascript - 如何解析(无限)嵌套对象符号?

perl - 使用 Perl-Mechanize : finalizing a little programme 进行 Dom 处理

php - 包装 mongoDB 和 mysql