這是簡易數據分析系列的第 18 篇文章。
2020-10-14 日更新:
Web Scraper 在0.5.1
版本后,為了后續的版本迭代,准備遷移數據庫,所以對新用戶關閉了 CouchDB 開關。這個改動意味着,如果你是老用戶並且通過 Google 應用商店更新了 Web Scraper,CouchDB 還是可以使用的;如果你是新用戶,CouchDB 功能就無法使用了;
如果想啟用 CouchDB 功能,可以回退到0.4.*
的某個舊版本官方版本更新日志可見 👉:Web Scraper Chrome Extension release notes
利用 web scraper 抓取數據的時候,大家一定會遇到一個問題:數據是亂序的。在之前的教程里,我建議大家利用 Excel 等工具對數據二次加工排序,但還是存在部分數據無法排序的情況。
其實解決數據亂序的方法也有,那就是換一個數據庫。
web scraper 作為一個瀏覽器插件,數據默認保存在瀏覽器的 localStorage 數據庫里。其實 web scraper 還支持外設數據庫——CouchDB。只要切換成這個數據庫,就可以在抓取過程中保證數據正序了。
1.CouchDB 下載安裝
CouchDB 可以從官網下載,官網鏈接為:https://couchdb.apache.org/。
因為服務器在外網,國內訪問可能比較慢,我存了一份雲盤文件,可以公眾號后台回復「CouchDB」獲取下載連接,Mac 和 Win 安裝包都有,版本為 3.0.0。
具體的安裝過程我就忽略了,大家平常怎么安裝軟件就怎么安裝 CouchDB。
2.配置 CouchDB
1.創建賬號
第一次打開 CouchDB,可能會要求你創建一個 CouchDB 賬號(或設置賬號密碼),這里我為了演示方便就取個簡單的密碼。大家一定要記住賬號密碼,因為之后訪問 CouchDB 都要填寫。
2.訪問 CouchDB
一般第一次打開 CouchDB,會自動打開一個網頁,網址為:http://127.0.0.1:5984/_utils/#,如果沒有自動打開,可以瀏覽器手動輸入這個網址。
3.創建 Database
我們可以把 Database 理解為一個文件,我們要創建一個文件專門保存 sitemap,創建流程可以看下圖:
- 點擊「Create Database」
- 為這個文件起個名字,叫「scraper-sitemaps」
- 勾選「Non-partitioned」
- 單擊「Create」創建
3.Web Scraper 切換到 CouchDB
1.首先從瀏覽器右上角的插件列表中找到 Web Scraper 的圖標,然后右鍵點擊,在彈出的菜單里再點擊「選項」。
2.在新打開的管理頁面里,要做這幾步:
- Storage type 切換為 CouchDB
- Sitemap db 填入 http://127.0.0.1:5984/scraper-sitemaps
- Data db 填入 http://127.0.0.1:5984/
3.最后點擊「Save」按鈕保存配置,重啟瀏覽器讓配置生效。
4.抓取數據
抓取數據前,我們需要把電腦的各種網絡代理關掉,要不然可能會連接不到 CouchDB。
網頁還是拿豆瓣 TOP250 做個簡單的演示。web scraper 的操作和以前都是一樣的,預覽數據時我們就會發現,和 localStorage 比起來,數據都是正序的:
我們也可以在 CouchDB 的操作頁面預覽數據。http://127.0.0.1:5984/_utils/# 這個頁面是主界面,我們可以看到保存 sitemap 的 database 和豆瓣數據的 database:
點擊「sitemap-data-douban2」進入數據詳情頁,可以預覽數據:
5.導出數據
導出數據也是老樣子,在 web scraper 插件面板里點擊「Export data as CSV」就可以導出。其實也可以從 CouchDB 里導出數據,但這樣還得寫一些腳本,我這里就不多介紹了,感興趣的人可以自行搜索。
6.個人感悟
其實一開始我並不想介紹 CouchDB,因為從我的角度看,web scraper 是一個很輕量的插件,可以解決一些輕量的抓取需求。加入 CouchDB 后,這個安裝下來要幾百兆的軟件,只是解決了 web scraper 數據亂序的問題,在我看來還是有些大炮打蚊子,也脫離了輕量抓取的初衷。但是有不少讀者私信我相關內容,為了教程的完整性,我還是寫下了這篇文章。
7.聯系我
因為文章發在各大平台上,賬號較多不能及時回復評論和私信,有問題可關注公眾號 ——「鹵蛋實驗室」,(或 wx 搜索 egglabs)關注上車防失聯。