如果我使用普通方法,我得到的只是“ http://lyriccsvip.com ”而不是歌词。
问问题
164 次
3 回答
4
这是因为歌词是由 Javascript 加载的,当您尝试抓取页面时,“正常”方法不会执行 Javascript。
不幸的是,除非您设法执行在源代码中找到的 Javascript 方法,否则您似乎不走运:
<body onload="javascript:getContent('aerosmith', 'crazy', '1281384888', '0475352e376cf1c3906afd8ec1b8ac70')">
我很确定您将无法做到这一点,因为它可能是为了防止这种情况而放在那里的.. :)
于 2010-08-09T20:16:33.103 回答
1
如果你真的想这样做,这是可能的。您将需要控制诸如 Gecko 之类的东西(使用例如pywebkigtk)以在可以执行 JS 的完整浏览器中打开网页,然后在完成渲染后从中获取源代码。
但是,您将无法做到这一点。如果您查看 Javascript 源代码,您会发现它只是向以下位置发出 AJAX POST 请求content.php
:
var url = "content.php?artist=" + artist + "&title=" + title + "&time=" + time + "&check=" + check;
,check
可能是一个散列的会话 ID。这无疑是为了阻止人们做你正在做的事情。
于 2010-08-09T21:12:29.213 回答
0
如果你在 Windows 上,你可以使用PAMIE来驱动浏览器....
于 2010-08-10T01:56:56.873 回答