【问题标题】:How do I get this page programatically?如何以编程方式获取此页面?
【发布时间】:2010-08-10 09:56:56
【问题描述】:

这里是页面THE LINK TO LYRICS SITE

如果我使用普通方法,我得到的只是“http://lyricsvip.com”而不是歌词。

【问题讨论】:

  • 什么是“正常方法”?

标签: python html ajax webpage fetch


【解决方案1】:

这是因为歌词是通过 Javascript 加载的,当您尝试抓取页面时,“正常”方法不会执行 Javascript。

不幸的是,您似乎不走运,除非您设法执行源代码中的 Javascript 方法:

<body onload="javascript:getContent('aerosmith', 'crazy', '1281384888', '0475352e376cf1c3906afd8ec1b8ac70')"> 

我很确定你做不到,因为它可能是为了防止这种情况发生的...... :)

【讨论】:

    【解决方案2】:

    如果你真的想这样做,那可能的。您将需要控制像 Gecko 之类的东西(使用例如 pywebkigtk)在可以执行 JS 的完整浏览器中打开网页,然后在完成渲染后从中获取源代码。

    但是,您将无法做到这一点。如果您查看 Javascript 源代码,您会发现它只是向 content.php 发出 AJAX POST 请求:

    var url = "content.php?artist=" + artist + "&title=" + title + "&time=" + time + "&check=" + check;
    

    check,可能是一个散列会话 ID。这无疑是为了阻止人们做你正在做的事情。

    【讨论】:

      【解决方案3】:

      如果您使用的是 Windows,则可以使用 PAMIE 来驱动浏览器....

      【讨论】:

        猜你喜欢
        • 2011-03-16
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多