Portia開源可視化爬蟲工具的使用學(xué)習(xí)
背景
由于最近在寫一個(gè)可供配置的爬蟲模板,方便快速擴(kuò)展新的抓取業(yè)務(wù),并且最后目標(biāo)是將其做成一個(gè)可視化的配置服務(wù)。還正在進(jìn)行中,并且有點(diǎn)沒有頭緒,所以想?yún)⒖季W(wǎng)上現(xiàn)有的輪子,看看能不能找到點(diǎn)新的思路。
安裝
Docker安裝完成后拉去portia服務(wù)項(xiàng)目
# < ..FOLDER> 路徑自定義即可 , 可在后面加上portia的版本 docker run -i -t --rm -v <PROJECTS_FOLDER>:/app/data/projects:rw -p 9001:9001 scrapinghub/portia # git上是如下語句 docker run -v ~/portia_projects:/app/data/projects:rw -p 9001:9001 scrapinghub/portia
具體可參考官方文檔
使用Portia包
新建project
Portia安裝完成以后使用瀏覽器打開http://localhost:9001, 在create a new project 中輸入項(xiàng)目名
點(diǎn)擊 New spider 創(chuàng)建一個(gè)新的spider
右邊側(cè)欄會(huì)提示你輸入一個(gè)url,Portia會(huì)將網(wǎng)頁的url作為一個(gè)start page。
這個(gè)start page一般被用來當(dāng)做seek(種子),用來獲得更多的鏈接。
Portia支持創(chuàng)建 page sample(頁面樣本),當(dāng)你創(chuàng)建了一個(gè)頁面樣本,就可以調(diào)度后面的任務(wù)按照你設(shè)定的模板抓取元素。(所以我們需要先創(chuàng)建這樣的模板)
page sample
創(chuàng)建了sample之后,我們可以開始注釋頁面。注釋會(huì)將頁面中的一條數(shù)據(jù)鏈接到項(xiàng)目字段。這些即是我們想要提取的數(shù)據(jù)
字段命名,選擇數(shù)據(jù)類型
Portia默認(rèn)遵循所有域內(nèi)URL。在許多情況下,您需要限制Portia將訪問的頁面,以便不會(huì)在不相關(guān)的頁面上浪費(fèi)請(qǐng)求。
為此,您可以分別設(shè)置跟隨和排除白名單和黑名單URL的模式??梢酝ㄟ^將爬網(wǎng)策略更改為來配置這些。Configure URL patterns
到此操作結(jié)束
可以在最右側(cè)看到我們選中的項(xiàng)目,將所有需要提取的items注釋完之后,關(guān)閉樣本。Close Sample,如果以后需要再添加其他元素,繼續(xù)配置此樣本,方便后續(xù)的抓取。
最后,我們可以在右邊看到我們需要的數(shù)據(jù),json如下格式
啟動(dòng)程序
我們配置好了sample page和start pages,那么就要開始抓取數(shù)據(jù)了,也就是將數(shù)據(jù)保存到j(luò)son文件或者數(shù)據(jù)庫中。這里我們保存成json文件
官方給出的代碼如下
docker run -i -t --rm -v PROJECTS_FOLDER:/app/data/projects:rw -v OUPUT_FOLDER:/mnt:rw -p 9001:9001 scrapinghub/portia \ portiacrawl /app/data/projects/PROJECT_NAME SPIDER_NAME -o /mnt/RESULT.json
其中可以更改的是大寫的那些部分:PROJECTS_FOLDER / OUPUT_FOLDER / PROJECT_NAME / SPIDER_NAME / RESULT.json
依次是: 項(xiàng)目名 / 輸出目錄 / project的名字 / Spider名字 / 保存結(jié)果的文件
啟動(dòng)程序前必須先關(guān)閉Portia的調(diào)試頁面,這里我直接使用kill命令,因?yàn)槲以赿ocker啟動(dòng)的終端按下ctrl+c 或 crtl+z都無效,只能用進(jìn)程關(guān)閉
例如,我的啟動(dòng)代碼如下:
docker run -i -t --rm -v ~/portia_projects:/app/data/projects:rw -v ~/result:/mnt:rw -p 9001:9001 scrapinghub/portia \ portiacrawl /app/data/projects/tingyun tingyun.site -o /mnt/tingyun.json
運(yùn)行成功就能看見代碼在飛快地跑了,而且都是我們想要的items
總結(jié)
到此,我們就結(jié)束了這一次使用Portia的抓取之旅,通過使用Portia確實(shí)能實(shí)現(xiàn)很快速簡(jiǎn)易的抓取功能,能將抓取過程可視化得呈現(xiàn)給操作者,還有其他有趣的功能在后續(xù)的學(xué)習(xí)中遇到再次分享給大家,接下來會(huì)去考慮試著將其用到一些大規(guī)模的抓取上,看看到底效果如何,更多關(guān)于Portia開源可視化爬蟲工具的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Iptables防火墻tcp-flags模塊擴(kuò)展匹配規(guī)則詳解
這篇文章主要為大家介紹了Iptables防火墻tcp-flags模塊擴(kuò)展匹配規(guī)則詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Discuz! 4.x SQL injection / admin credentials disclosure exp
Discuz! 4.x SQL injection / admin credentials disclosure exploit...2006-11-11跨站腳本攻擊XSS(Cross Site Script)的原理與常見場(chǎng)景分析
XSS指的是惡意攻擊者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意攻擊用戶的特殊目的。這篇文章主要給大家介紹了關(guān)于跨站腳本攻擊XSS(Cross Site Script)的原理與常見場(chǎng)景的相關(guān)資料,需要的朋友可以參考下。2017-12-12Mac下使用mitmproxy抓包HTTPS數(shù)據(jù)方法詳解
在Mac上常用的抓包軟件是 Charles下面為大家介紹另一個(gè)抓包神器 mitmproxy,具體使用方法大家可以參考下面的介紹2020-02-02