這是《數(shù)據(jù)爬取及可視化系列》的第四篇文章。
前3篇文章,可以點擊查閱:
玩了一個月的electron,倒騰了幾稿原型+demo開發(fā),不斷的推翻自己,最終,我整了一款桌面APP:
Spyfari
用javascrip編寫爬蟲規(guī)則,
可視化的爬蟲軟件。
我拿它,對著名的p站爬取了一些數(shù)據(jù),
在這里我們先回顧下爬蟲爬取數(shù)據(jù)的步驟:
1、通過瀏覽器查看網(wǎng)站結(jié)構(gòu),提取出需要獲取數(shù)據(jù)所在的標(biāo)簽,這里跟各種element的節(jié)點打交道,需要解釋網(wǎng)頁標(biāo)簽,用到類選擇、id選擇、父節(jié)點、子節(jié)點、正則表達式等等。如果是用python有相應(yīng)的庫,比如BeautifulSoup;
2、處理自動登錄,驗證碼等。
3、獲取到數(shù)據(jù),或者url,數(shù)據(jù)存入本地或者數(shù)據(jù)庫
4、根據(jù)url再次爬取其他數(shù)據(jù),或者根據(jù)url下載文件(包括圖片、視頻、文本、網(wǎng)頁等等)。
大致是這么個過程。
有2個事情比較頭疼:
1、注冊登錄賬號才能訪問
2、各種驗證碼
登錄的話獲取登錄后的cookie,以后每次爬取的時候,模擬即可。
但是驗證碼的話,如果碰到變態(tài)的驗證碼,就哭吧。。。
像下面這種:
不過用上Spyfari,人工點擊下,這是很容易的事。
下次再登錄,登錄狀態(tài)已經(jīng)保存了,哈。
除非每一步都要驗證碼,這種情況不太可能發(fā)生吧,畢竟?fàn)奚擞脩趔w驗哈。
這就是可視化的優(yōu)點,各種網(wǎng)站都可以爬取。
我今天先把p站的各個排行榜上的信息爬下來了,還下了圖片~
喜歡二次元的朋友應(yīng)該會喜歡看吧~~
p站的一些排行榜,我都保存為一個個的json文件了,每天都更新排名,看來可以定時去爬取了。
上面那個pixivRank.js是爬取的代碼,我會打包進spyfari里的,作為例子。
初次接觸可以直接在spyfari里打開,運行下,體驗下爬取數(shù)據(jù)的樂趣。
下面是我爬取的數(shù)據(jù)存放的格式:
主要爬取了名次、作者、圖片url、還有投稿日期;
這個頁面是異步加載的,需要不斷的滑動到頁面最底端才能獲取得到數(shù)據(jù),但是對于spyfari來說,這個還算是很容易的,畢竟是可視化的爬蟲工具,哈,可以做到完全模擬人工操作,過程還是可見的。
其中,投稿日期是異步獲取的,需要模擬鼠標(biāo)點擊,然后獲取數(shù)據(jù)。
Spyfari處理異步加載的內(nèi)容很容易。
這是今天修完Spyfari的一些bug之后,測試代碼下載的圖片。
下面看看工作頁面吧~
最上面一欄是:
定時任務(wù)、云端代碼共享、操作指引、關(guān)閉spyfari。
都還沒有進一步開發(fā),待我下禮拜繼續(xù)完善。
接下來是:
1、需要爬取數(shù)據(jù)的網(wǎng)址控制,調(diào)用的是我精簡的chrome瀏覽器,畢竟爬取數(shù)據(jù)第一步是分析網(wǎng)頁結(jié)構(gòu)啊,要方便的調(diào)試代碼,還要方便定位標(biāo)簽。
2、編寫爬取代碼的地方,我集成了一個編輯器。簡單好用,在右側(cè)瀏覽器調(diào)試好代碼,直接拷過來,保存在本地或者打開本地已有的爬取代碼。
代碼編寫完后,直接點擊運行按鈕。
愉快的工作起來了,右邊還可以實時看到運行的情況,包括一些模擬登錄啊,模擬鼠標(biāo)點擊、滑動動作啊~一目了然。
3、是一些爬取的結(jié)果輸出,還有l(wèi)og的輸出,我整合了一些api,方便使用。
如果有下載動作,比如下載圖片,也會自動得打印出來。后續(xù)會再完善進度提示的功能。
最后,
Spyfari
第一個實驗版本安裝包已準(zhǔn)備好,暫時是mac版。
設(shè)計+科技=
自在園O設(shè)計Mix科技實驗室。
聯(lián)系客服