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

Php dom完成后如何解析javascript加载的内容,php,javascript,parsing,dynamic,Php,Javascript,Parsing,Dynamic,我一直在分析来自魔兽世界武器库的一些数据,但遇到了一些麻烦。当涉及到提供玩家所获得的成就的网站时,它使用javascript来控制字符串,例如#73:1283,以显示所请求的信息。(我编了这个数字,但请求的数据格式如下) 是否可以从需要javascript使用php显示其数据的页面中提取数据 如何使用php解析dom就绪或完成后加载的站点中的数据 我建议您看看是否可以在PHP中复制JavaScript发送的查询。虽然我不相信有一种在PHP中处理JavaScript的方法,但肯定没有一种简单或可伸

我一直在分析来自魔兽世界武器库的一些数据,但遇到了一些麻烦。当涉及到提供玩家所获得的成就的网站时,它使用javascript来控制字符串,例如
#73:1283
,以显示所请求的信息。(我编了这个数字,但请求的数据格式如下)

  • 是否可以从需要javascript使用php显示其数据的页面中提取数据
  • 如何使用php解析dom就绪或完成后加载的站点中的数据

  • 我建议您看看是否可以在PHP中复制JavaScript发送的查询。虽然我不相信有一种在PHP中处理JavaScript的方法,但肯定没有一种简单或可伸缩的方法

    我将尝试扫描您使用PHP下载的第一页源代码,查找您提到的格式的字符串。然后,如果他们网站上的JS正在查询类似的内容,那么您可以下载下一步的源代码。您可以了解JS是如何使用FireBug或Chrome或Safari中的Inspector等工具查询服务器的

    总而言之:

  • 检查以查找JSURL格式,以及是否可以复制它
  • 创建PHP以获取主页并提取所有字符串
  • 创建PHP循环遍历这些字符串并获取这些页面(带有JS请求的URL)
  • 你想用这些信息做什么就做什么

  • 我建议您看看是否可以在PHP中复制JavaScript发送的查询。虽然我不相信有一种在PHP中处理JavaScript的方法,但肯定没有一种简单或可伸缩的方法

    我将尝试扫描您使用PHP下载的第一页源代码,查找您提到的格式的字符串。然后,如果他们网站上的JS正在查询类似的内容,那么您可以下载下一步的源代码。您可以了解JS是如何使用FireBug或Chrome或Safari中的Inspector等工具查询服务器的

    总而言之:

  • 检查以查找JSURL格式,以及是否可以复制它
  • 创建PHP以获取主页并提取所有字符串
  • 创建PHP循环遍历这些字符串并获取这些页面(带有JS请求的URL)
  • 你想用这些信息做什么就做什么
  • 您可以尝试jquery的$(document).onready函数,该函数有助于 在网页加载时运行java脚本代码

    #4325325
    $(文件)。准备好了吗(
    函数(){
    $(“#wowoData”).css(“边框”,“1px实心红色”);
    }
    )
    
    您可以尝试jquery的$(document).onready函数,它有助于 在网页加载时运行java脚本代码

    #4325325
    $(文件)。准备好了吗(
    函数(){
    $(“#wowoData”).css(“边框”,“1px实心红色”);
    }
    )
    
    通过使用Firebug,我可以查看HTTP头,以查看为生成这些页面上的内容而进行的AJAX调用:以及

    看起来页面正在进行异步调用以加载此页面:当哈希后面的部分为96:14861时,以及当哈希后面的部分仅为96时调用。这两个页面都返回可以解析为呈现HTML的XML

    所以一般来说,如果散列后只有一个数字,就把
    http://.../achievement/
    作为URL。如果有两个数字,请将第二个数字放在URL的末尾

    您需要做的不是拉Javascript并解释它,而是自己用PHP(例如使用cURL)向这些URL发出HTTP请求,并自己解析数据


    我真的建议您学习JavaScript和jQuery,因为如果您不了解所有在后台进行的AJAX加载,就很难真正构建一个从魔兽世界武器库获取信息的好网站。

    使用Firebug,我能够查看HTTP头,以查看在这些页面上生成内容时进行了哪些AJAX调用:以及

    看起来页面正在进行异步调用以加载此页面:当哈希后面的部分为96:14861时,以及当哈希后面的部分仅为96时调用。这两个页面都返回可以解析为呈现HTML的XML

    所以一般来说,如果散列后只有一个数字,就把
    http://.../achievement/
    作为URL。如果有两个数字,请将第二个数字放在URL的末尾

    您需要做的不是拉Javascript并解释它,而是自己用PHP(例如使用cURL)向这些URL发出HTTP请求,并自己解析数据


    我真的建议您学习JavaScript和jQuery,因为如果您不了解所有在后台进行的AJAX加载,就很难真正构建一个从魔兽世界武器库获取信息的好网站。

    您能给我们一个代码示例说明它在做什么吗?否则,为了完全理解您的要求,我们必须亲自查看所有WoW Armory代码,以了解您的意思。页面加载后,站点是否异步加载数据?或者当你点击某个东西时,它会发出AJAX调用吗?您确定是Javascript本身在解释字符串,而不仅仅是向某个服务器发送请求吗?
    http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement#96:14861
    是一个示例链接,您可以访问它查看我所说的内容。如果禁用javascript,则只能提取
    http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement
    在此页面中,左侧与成就相关的所有菜单都将加载到dom中,而不使用html。如果未启用javascript,您将无法使用菜单,但完整菜单的数据存在。问题是您无法加载内容
    <div id="wowoData">#4325325</div>
    
    <script>
    $(document).ready(
    function(){
    $("#wowoData").css("border","1px solid red");
    }
    
    )
    </script>