給大家推薦一個強大易用的爬蟲智慧列表解析外掛!

語言: CN / TW / HK

前情提要:Gne 是一個用於智慧解析新聞詳情資訊(如正文、標題等)的 Python 庫。

Gne [1] 釋出以後,大家自動化抓取新聞正文頁的需求被解決了。但隨之而來的,不斷有同學希望能出一個抓取列表頁的工具,於是,就有了今天的 GneList。

GneList 是什麼

GneList 是一個瀏覽器外掛,專門用來生成列表頁的 XPath。使用這個 XPath,你可以快速獲取到列表頁中的每一個條目。

GneList 怎麼用?

大家直接看視訊吧~

GneList 的使用非常簡單,幾乎不需要說明。

  1. 開啟帶有列表的頁面

  2. 點選外掛

  3. 輸入名字,點選 開始抓取
  4. 滑鼠點選列表的前兩項,GneList 會自動選中所有項

  5. 點選 提交 按鈕
  6. 去資料庫檢視 XPath

怎麼安裝 GneList?

GneList 由兩個部分組成:外掛端與後端。

外掛端的下載地址:https://github.com/GeneralNewsExtractor/GneList/releases/download/0.1/GneList.zip

後端的程式碼:https://github.com/GeneralNewsExtractor/GneListBackend ,並且後端依賴 MongoDB。

安裝後端

首先確保你有一個可以連線的 MongoDB,我們假設它的 URI 是: mongodb://localhost 。從 Github上面 clone 後端的程式碼: https://github.com/GeneralNewsExtractor/GneListBackend.git

進入後端程式碼的根目錄中的 config 資料夾中,你會發現一個 local.yml 檔案。開啟它,第一行填寫 MongoDB 的 URI 地址,第二行是資料庫名,第三行是集合名。外掛生成的 XPath 會儲存在這裡供你的下游呼叫。

改好配置檔案以後,回到後端的根目錄,分別執行如下命令(你需要先安裝 Pipenv):

pipenv install
pipenv shell
export local # 你自己建立的 yml檔案的名字
uvicorn main:app --port 8800 --host 0.0.0.0  # 使用8800埠

命令執行完成後,如果你使用瀏覽器訪問 http://127.0.0.1:8800 ,應該會看到下圖的內容,說明後端搭建成功。

安裝外掛

GneList 外掛支援所有基於 Chromium 核心的瀏覽器,包括但不限於 Chrome/Chromium/Edge。

從上面的地址下載 GneList.zip 後,把它解壓到任何一個資料夾中,如下圖所示:

然後開啟你的瀏覽器的外掛管理頁面,啟動 開發人員模式 ,例如下圖是我在 Edge 中開啟開發人員模式的方法。

然後點選右上角的 載入解壓縮的擴充套件 ,選中 GneList 資料夾。完成。

現在,重新整理已有的列表頁,或者重新開一個新的列表頁,然後點選外掛,試用一下吧。

管理配置頁面

在外掛上右鍵,選擇 擴充套件選項 。Chrome 上面,名字可能是叫做 選項 或者英文 Options 。可以開啟如下圖所示的頁面:

如果你沒有啟動後端,或者後端地址不是 http://127.0.0.1:8800 (例如你把後端部署在伺服器上,需要使用 IP 或者域名來訪問,或者埠不是8800),那麼這個頁面應該如上圖所示。

你可以把輸入框中的地址改為 後端地址/rule ,例如 http://123.56.78.99:8888/rule 。然後點選 提交 按鈕。接下來重新整理頁面,你就可以看到如下圖所示的內容:

這個頁面顯示了你已經新增的所有網站的XPath,你可以對他們進行修改或者刪除。

Q&A

為什麼外掛生成的 XPath 這麼奇怪?

因為這些 XPath 是從 CssSelector 轉成的 XPath,我用了一個第三方的 JavaScript 包。那個包轉出來的就是這麼奇怪。但不影響它的功能。我後面會更換更好的包,讓 XPath 變得更好看。

我的爬蟲怎麼使用這些 XPath?

還記得一開始配置的 MongoDB 嗎?讓你的爬蟲去裡面讀取就可以了。

為什麼我啟動外掛以後,點網頁上面的元素第一次沒有反應?

第一次點選的時候,如果發現沒有生成紅框框,就多點一下。看到紅框框了再點第二個元素。

GneList 的原理是什麼?

後面原作者還會介紹 GneList 的原理。如果你等不及的話,也可以到 Github上檢視 原始碼 [2] 。GneList 與 Gne 一樣,他們是站在其他優秀開源專案的肩膀上做出來的,尤其是受到  web-scraper-chrome-extension [3] 的啟發。因此,GneList 也是完全開源的,允許非商業使用。

參考文獻

[1]  Gne:  https://github.com/GeneralNewsExtractor/GeneralNewsExtractor

[2]  原始碼:  https://github.com/GeneralNewsExtractor/GneList

[3]  web-scraper-chrome-extension:  https://github.com/martinsbalodis/web-scraper-chrome-extension

End

崔慶才的新書 《Python3網路爬蟲開發實戰(第二版)》 已經正式上市了!書中詳細介紹了零基礎用 Python 開發爬蟲的各方面知識,同時相比第一版新增了 JavaScript 逆向、Android 逆向、非同步爬蟲、深度學習、Kubernetes 相關內容,‍同時本書已經獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!

內容介紹: 《Python3網路爬蟲開發實戰(第二版)》內容介紹

掃碼購買

好文和朋友一起看~