我一直在努力解析来自wow军械库的一些数据并且遇到了一些麻烦。当涉及提供玩家收到的成就的网站时,它使用javascript来控制诸如#73:1283
之类的字符串以显示所请求的信息。 (我把这个号码编了,但请求的数据就这样形成了。)
答案 0 :(得分:0)
我建议您查看是否可以复制PHP中的JavaScript发送的查询。虽然我不相信有一种方法可以在PHP中处理JavaScript,但肯定没有一种简单或可扩展的方式。
我会尝试扫描您使用PHP下载的第一页的源代码,以获取您提到的格式的字符串。然后,如果他们网站上的JS查询类似http://www.wow.com/armory.php?id=#72:1284的内容,您可以下载下一个的源代码。您可以了解JS如何使用FireBug或Chrome或Safari中的Inspector查询服务器。
总结如下:
答案 1 :(得分:0)
您可以尝试使用jquery的$(document).onready函数 在网页加载时运行java脚本代码。
离
<div id="wowoData">#4325325</div>
<script>
$(document).ready(
function(){
$("#wowoData").css("border","1px solid red");
}
)
</script>
答案 2 :(得分:0)
通过使用Firebug,我能够查看HTTP标头,了解在这些页面上生成内容的AJAX调用:http://us.battle.net/wow/en/character/black-dragonflight/glitchshot/achievement#96:14861和http://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。如果有两个数字,请将第二个数字放在URL的末尾。
您需要做的事情,而不是拉动Javascript并解释它,是在PHP中自己向这些URL发出HTTP请求(例如使用cURL)并自行解析数据。
我真的建议学习JavaScript和jQuery,因为你很难真正建立一个好的网站,从WoW军械库中提取信息而不了解后台正在进行的所有AJAX负载。