Php dom完成后如何解析javascript加载的内容
我一直在分析来自魔兽世界武器库的一些数据,但遇到了一些麻烦。当涉及到提供玩家所获得的成就的网站时,它使用javascript来控制字符串,例如Php dom完成后如何解析javascript加载的内容,php,javascript,parsing,dynamic,Php,Javascript,Parsing,Dynamic,我一直在分析来自魔兽世界武器库的一些数据,但遇到了一些麻烦。当涉及到提供玩家所获得的成就的网站时,它使用javascript来控制字符串,例如#73:1283,以显示所请求的信息。(我编了这个数字,但请求的数据格式如下) 是否可以从需要javascript使用php显示其数据的页面中提取数据 如何使用php解析dom就绪或完成后加载的站点中的数据 我建议您看看是否可以在PHP中复制JavaScript发送的查询。虽然我不相信有一种在PHP中处理JavaScript的方法,但肯定没有一种简单或可伸
#73:1283
,以显示所请求的信息。(我编了这个数字,但请求的数据格式如下)
我建议您看看是否可以在PHP中复制JavaScript发送的查询。虽然我不相信有一种在PHP中处理JavaScript的方法,但肯定没有一种简单或可伸缩的方法 我将尝试扫描您使用PHP下载的第一页源代码,查找您提到的格式的字符串。然后,如果他们网站上的JS正在查询类似的内容,那么您可以下载下一步的源代码。您可以了解JS是如何使用FireBug或Chrome或Safari中的Inspector等工具查询服务器的 总而言之:
我建议您看看是否可以在PHP中复制JavaScript发送的查询。虽然我不相信有一种在PHP中处理JavaScript的方法,但肯定没有一种简单或可伸缩的方法 我将尝试扫描您使用PHP下载的第一页源代码,查找您提到的格式的字符串。然后,如果他们网站上的JS正在查询类似的内容,那么您可以下载下一步的源代码。您可以了解JS是如何使用FireBug或Chrome或Safari中的Inspector等工具查询服务器的 总而言之:
#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>