簡體   English   中英

用Python中的java腳本抓取網頁

[英]Scraping a web page with java script in Python

我正在 Windows 機器上使用 python 3.2 (newb)(盡管如果需要,我在虛擬機上有 ubuntu 10.04,但我更喜歡在 Windows 機器上工作)。

基本上我可以使用 http 模塊和 urlib 模塊來抓取網頁,但只有那些沒有 java 腳本 document.write("<div....") 等添加數據的在我獲得實際頁面時不在那里(意思是沒有真正的 ajax 腳本)。

為了處理這些類型的網站,我很確定我需要一個瀏覽器 java 腳本處理器來處理頁面並給我一個帶有最終結果的輸出,希望是一個 dict 或文本。

我試圖編譯 python-spider 猴子,但我知道它不適用於 Windows 並且它不適用於 python 3.x :-?

有什么建議 ? 如果有人在此之前做過類似的事情,我將不勝感激!

我推薦 python 對 webkit 庫的綁定—— 這里是一個例子 Webkit 是跨平台的,用於在 Chrome 和 Safari 中呈現網頁。 一個優秀的圖書館。

使用 Firebug 可以准確查看為獲取要顯示的數據而調用的內容(POST 或 GET url?)。 我懷疑有一個 AJAX 調用從服務器以 XML 或 JSON 形式檢索數據。 只需調用相同的 AJAX 調用,並自己解析數據。

或者,您可以下載 Selenium for Firefox,啟動 Selenium 服務器,通過 Selenium 下載頁面,並獲取 DOM 內容。 MozRepl 也能工作,但沒有那么多文檔,因為它沒有被廣泛使用。

通常使用 document.write 是因為您正在動態生成內容,通常是通過從服務器獲取數據。 你得到的是更多關於 javascript 而不是 HTML 的網絡應用程序。 “抓取”更像是下載 HTML 並處理它的問題,但這里沒有任何 HTML 可供下載。 您實際上是在嘗試抓取 GUI 程序。

大多數這些應用程序都有某種 API,通常返回 XML 或 JSON 數據,您可以使用它們。 如果沒有,您可能應該嘗試遠程控制真正的網絡瀏覽器。

暫無
暫無

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

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