【发布时间】:2010-08-10 09:56:56
【问题描述】:
如果我使用普通方法,我得到的只是“http://lyricsvip.com”而不是歌词。
【问题讨论】:
-
什么是“正常方法”?
标签: python html ajax webpage fetch
如果我使用普通方法,我得到的只是“http://lyricsvip.com”而不是歌词。
【问题讨论】:
标签: python html ajax webpage fetch
这是因为歌词是通过 Javascript 加载的,当您尝试抓取页面时,“正常”方法不会执行 Javascript。
不幸的是,您似乎不走运,除非您设法执行源代码中的 Javascript 方法:
<body onload="javascript:getContent('aerosmith', 'crazy', '1281384888', '0475352e376cf1c3906afd8ec1b8ac70')">
我很确定你做不到,因为它可能是为了防止这种情况发生的...... :)
【讨论】:
如果你真的想这样做,那是可能的。您将需要控制像 Gecko 之类的东西(使用例如 pywebkigtk)在可以执行 JS 的完整浏览器中打开网页,然后在完成渲染后从中获取源代码。
但是,您将无法做到这一点。如果您查看 Javascript 源代码,您会发现它只是向 content.php 发出 AJAX POST 请求:
var url = "content.php?artist=" + artist + "&title=" + title + "&time=" + time + "&check=" + check;
check,可能是一个散列会话 ID。这无疑是为了阻止人们做你正在做的事情。
【讨论】:
如果您使用的是 Windows,则可以使用 PAMIE 来驱动浏览器....
【讨论】: