
這是簡易數(shù)據(jù)分析系列的第 18 篇文章。
原文鏈接:https://www.cnblogs.com/web-scraper/p/web-scraper-couchdb.html
利用 web scraper 抓取數(shù)據(jù)的時候,大家一定會遇到一個問題:數(shù)據(jù)是亂序的。在之前的教程里,我建議大家利用 Excel 等工具對數(shù)據(jù)二次加工排序,但還是存在部分?jǐn)?shù)據(jù)無法排序的情況。
其實(shí)解決數(shù)據(jù)亂序的方法也有,那就是換一個數(shù)據(jù)庫。
web scraper 作為一個瀏覽器插件,數(shù)據(jù)默認(rèn)保存在瀏覽器的 localStorage 數(shù)據(jù)庫里。其實(shí) web scraper 還支持外設(shè)數(shù)據(jù)庫——CouchDB。只要切換成這個數(shù)據(jù)庫,就可以在抓取過程中保證數(shù)據(jù)正序了。
1.CouchDB 下載安裝
CouchDB 可以從官網(wǎng)下載,官網(wǎng)鏈接為:https://couchdb.apache.org/。
因?yàn)榉?wù)器在外網(wǎng),國內(nèi)訪問可能比較慢,我存了一份云盤文件,大家可以看我個人信息,關(guān)注后在后臺回復(fù)「CouchDB」就可以獲得下載鏈接。Mac 和 Win 安裝包都有,版本為 3.0.0。
具體的安裝過程我就忽略了,大家平常怎么安裝軟件就怎么安裝 CouchDB。
2.配置 CouchDB
1.創(chuàng)建賬號
第一次打開 CouchDB,可能會要求你創(chuàng)建一個 CouchDB 賬號(或設(shè)置賬號密碼),這里我為了演示方便就取個簡單的密碼。大家一定要記住賬號密碼,因?yàn)橹笤L問 CouchDB 都要填寫。

2.訪問 CouchDB
一般第一次打開 CouchDB,會自動打開一個網(wǎng)頁,網(wǎng)址為:http://127.0.0.1:5984/_utils/#,如果沒有自動打開,可以瀏覽器手動輸入這個網(wǎng)址。

3.創(chuàng)建 Database
我們可以把 Database 理解為一個文件,我們要創(chuàng)建一個文件專門保存 sitemap,創(chuàng)建流程可以看下圖:
- 點(diǎn)擊「Create Database」
- 為這個文件起個名字,叫「scraper-sitemaps」
- 勾選「Non-partitioned」
- 單擊「Create」創(chuàng)建

3.Web Scraper 切換到 CouchDB
1.首先從瀏覽器右上角的插件列表中找到 Web Scraper 的圖標(biāo),然后右鍵點(diǎn)擊,在彈出的菜單里再點(diǎn)擊「選項(xiàng)」。

2.在新打開的管理頁面里,要做這幾步:
- Storage type 切換為 CouchDB
- Sitemap db 填入 http://127.0.0.1:5984/scraper-sitemaps
- Data db 填入 http://127.0.0.1:5984/

3.最后點(diǎn)擊「Save」按鈕保存配置,重啟瀏覽器讓配置生效。
4.抓取數(shù)據(jù)
抓取數(shù)據(jù)前,我們需要把電腦的各種網(wǎng)絡(luò)代理關(guān)掉,要不然可能會連接不到 CouchDB。
網(wǎng)頁還是拿豆瓣 TOP250 做個簡單的演示。web scraper 的操作和以前都是一樣的,預(yù)覽數(shù)據(jù)時我們就會發(fā)現(xiàn),和 localStorage 比起來,數(shù)據(jù)都是正序的:

我們也可以在 CouchDB 的操作頁面預(yù)覽數(shù)據(jù)。http://127.0.0.1:5984/_utils/# 這個頁面是主界面,我們可以看到保存 sitemap 的 database 和豆瓣數(shù)據(jù)的 database:

點(diǎn)擊「sitemap-data-douban2」進(jìn)入數(shù)據(jù)詳情頁,可以預(yù)覽數(shù)據(jù):

5.導(dǎo)出數(shù)據(jù)
導(dǎo)出數(shù)據(jù)也是老樣子,在 web scraper 插件面板里點(diǎn)擊「Export data as CSV」就可以導(dǎo)出。其實(shí)也可以從 CouchDB 里導(dǎo)出數(shù)據(jù),但這樣還得寫一些腳本,我這里就不多介紹了,感興趣的人可以自行搜索。
6.個人感悟
其實(shí)一開始我并不想介紹 CouchDB,因?yàn)閺奈业慕嵌瓤矗瑆eb scraper 是一個很輕量的插件,可以解決一些輕量的抓取需求。加入 CouchDB 后,這個安裝下來要幾百兆的軟件,只是解決了 web scraper 數(shù)據(jù)亂序的問題,在我看來還是有些大炮打蚊子,也脫離了輕量抓取的初衷。但是有不少讀者私信我相關(guān)內(nèi)容,為了教程的完整性,我還是寫下了這篇文章。
7.聯(lián)系我
因?yàn)槲恼掳l(fā)在各大平臺上,賬號較多不能及時回復(fù)評論和私信,大家可以看我個人信息關(guān)注賬號,上車防失聯(lián)。