我想刮掉javascript生成的html,就像你可以在Firebug中看到的一樣。如何使用python來抓取javascript生成的html?
UPDATE: 我發現這篇文章:http://blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/其使用PyQt的要解決的問題,它很適合我。
但另一個問題出現:我必須先登錄的網站,但我不知道如何來模擬PyQt的登錄.... :(
我想刮掉javascript生成的html,就像你可以在Firebug中看到的一樣。如何使用python來抓取javascript生成的html?
UPDATE: 我發現這篇文章:http://blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/其使用PyQt的要解決的問題,它很適合我。
但另一個問題出現:我必須先登錄的網站,但我不知道如何來模擬PyQt的登錄.... :(
看一看this article其描述使用Windmill做在瀏覽器執行Javascript後拖動頁面
本文將展示如何使用相同的三個步驟提取所需的信息,當網頁不是直接使用HTML編寫的,而是使用自動生成的JavaScript更新DOM樹。
他們有一些例子,我相信你可以很容易地適應。
爲了更準確地使用術語,Javascript不生成HTML。 Javascript在您的瀏覽器中生成和操作DOM。 Firebug向您顯示該DOM的HTML表示,以便它可讀。 HTML實際上並不存在。 :)
我不認爲現成的簡單解決方案存在。你可能想看看this blog post and comments有一些指針。
你可以使用Python SpiderMonkey的,這是一個Python包裝Firefox的引擎:http://code.google.com/p/python-spidermonkey/
但該項目似乎有點不成熟。
我昨天看過這篇文章,但似乎用戶必須打開網頁瀏覽器來刮頁面,這不是我想要的... 無論如何感謝。 – wong2 2010-04-25 04:47:53
這可能(不容易但可能)以無頭模式運行Firefox等。 – 2010-04-25 04:52:31