2009-12-16 63 views
14

我想要屏幕抓取使用JavaScript的網站。帶JavaScript的編程式Python瀏覽器

mechanize,Python的編程Web瀏覽器。然而,它(可以理解)不解釋JavaScript。有Python的程序瀏覽器嗎?如果沒有,Python中是否有任何JavaScript實現可以用來嘗試創建一個?

回答

11

使用類似Selenium這樣的工具可以更好地使用網絡瀏覽器自動執行抓取,所以JS執行並且頁面呈現與真實用戶一樣。

2

您也可以嘗試在相關頁面上定義頁面觸發器,在頁面上執行任何您想要的操作並將操作結果保存到本地文件,然後從程序中的命令行調用Firefox,然後通過閱讀文件。

7

PyV8包很好地包裝爲Python Google's V8 Javascript engine。這非常好,因爲您不僅可以從Python調用Javascript代碼,還可以從Javascript調用回Python代碼。這使得實現通常的瀏覽器提供的對象(即,JavaScript全局名稱空間中的所有內容:「窗口」,「文檔」等)非常簡單,如果您打算製作對象一個Javascript功能的Python瀏覽器模擬器的東西,可能通過與mechanize掛鉤。

1

我建議你看看http://wiki.python.org/moin/WebBrowserProgramming提供給你的一些選項 - 令人驚訝的是這是一個常見問題(我今天在stackoverflow上發現了三個,通過搜索單詞「python browser」在谷歌)。如果你這樣做,你會發現我給出的其他答案。

4

還有spynner 「有狀態的綱領性Web瀏覽器爲Python的JavaScript/AJAX支持基於QtWebKit的框架模塊」:http://code.google.com/p/spynner/

+2

現在轉移到GitHub:https://github.com/makinacorpus/spynner – 2012-11-22 22:01:09

5

我最喜歡的是PyPhantomJS。它使用Python和PyQt4編寫。它完全沒有頭緒,你可以從JavaScript完全控制它。

但是,如果您正在尋找實際看到的頁面,您也可以使用PyQt4中的QWebView

+0

這真是太棒了。謝謝。 – jdi 2011-12-20 04:18:32

+1

不幸的是,項目維護人員無法再維護該項目。但它仍然與1.4.0版本兼容。您可以切換到[PhantomJS](http://code.google.com/p/phantomjs/),而不會喪失功能(PyPhantomJS比較的所有優秀和新功能除外,例如支持插件) 。他們正在尋找其他人接管維修(核心發展),所以希望它不會消亡。 :) – 2011-12-21 17:17:52