簡體   English   中英

帶有 JavaScript 的程序化 Python 瀏覽器

[英]Programmatic Python Browser with JavaScript

我想截取一個使用 JavaScript 的網站。

mechanize ,Python 的程序化網絡瀏覽器。 但是,它(可以理解)不解釋 javascript。 是否有任何適用於 Python 的編程瀏覽器? 如果沒有,我可以使用 Python 中的任何 JavaScript 實現來嘗試創建一個嗎?

您最好使用像Selenium這樣的工具來使用 Web 瀏覽器自動進行抓取,這樣 JS 就會像真實用戶一樣執行並且頁面呈現。

PyV8包很好地包裝了Google 的用於 Python 的 V8 Javascript 引擎 它特別好,因為您不僅可以從 Python 調用 Javascript 代碼,還可以從 Javascript 回調到 Python 代碼。 這使得實現通常的瀏覽器提供的對象(即 Javascript 全局命名空間中的所有對象:“window”、“document”等)變得非常簡單,如果您要制作這些對象,則需要這樣做一個支持 Javascript 的 Python 瀏覽器模擬器,可能通過將它與mechanize連接起來。

我最喜歡的是PyPhantomJS 它是使用 Python 和 PyQt4 編寫的。 它是完全無頭的,您可以完全通過 JavaScript 控制它。

但是,如果您希望實際查看該頁面,您也可以使用 PyQt4 中的QWebView

還有 spynner“基於 QtWebkit 框架的具有 Javascript/AJAX 支持的 Python 有狀態的編程 Web 瀏覽器模塊”: http ://code.google.com/p/spynner/

您還可以嘗試在相關頁面上定義Chickenfoot頁面觸發器,在頁面上執行您想要的任何操作並將操作結果保存到本地文件,並從程序內的命令行調用Firefox,然后讀取文件.

我建議您在http://wiki.python.org/moin/WebBrowserProgramming查看一些可用的選項 - 令人驚訝的是,這是一個常見問題(我今天在 stackoverflow 上找到了三個,由在谷歌上搜索“python瀏覽器”這個詞)。 如果你這樣做,你會發現我給出的其他答案。

Playwrightpyppeteer都相當不錯,並且使用無頭 Chromium 來呈現頁面和解釋 JavaScript。

我會從兩者中選擇 Playwright,僅僅是因為它有一個更大的實體支持,並且開箱即用地支持 Chromium/Firefox/WebKit。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM