欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Portia開源可視化爬蟲工具的使用學(xué)習(xí)

 更新時(shí)間:2022年04月25日 16:35:34   作者:愛python的王三金  
這篇文章主要為大家介紹了Portia開源可視化爬蟲工具的使用學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

背景

由于最近在寫一個(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)文章

最新評(píng)論