商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Portia开源可视化爬虫工具的使用学习

Portia开源可视化爬虫工具的使用学习

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

背景

最近在做一个可配置的爬虫模板,目标是能快速扩展新的抓取业务,最终做成一个可视化的配置服务。目前还在进行中,思路有些卡壳,所以打算翻翻市面上已有的轮子,看看能不能找到新的灵感。

安装

Docker 安装完成后,拉取 Portia 服务项目即可。

# <..FOLDER> 路径自定义即可,可在后面加上 portia 的版本
docker run -i -t --rm -v :/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”中输入项目名。

Portia开源可视化爬虫工具的使用学习

点击“New spider”创建一个新的 spider。右侧边栏会提示输入一个 URL,Portia 会将这个 URL 作为 start page(起始页)。这个 start page 通常被当作 seed(种子),用来获取更多的链接。

Portia开源可视化爬虫工具的使用学习

Portia 支持创建 page sample(页面样本)。创建了页面样本后,就可以调度后续任务按照设定的模板抓取元素。所以,我们需要先创建这样的模板。

page sample

创建 sample 后,就可以开始注释页面了。注释会将页面中的一条数据链接到项目字段,而这些就是我们想要提取的数据。

Portia开源可视化爬虫工具的使用学习

给字段命名,选择数据类型。

Portia开源可视化爬虫工具的使用学习

Portia 默认会遵循所有域内 URL。但在很多情况下,我们需要限制 Portia 访问的页面,避免在不相关的页面上浪费请求。为此,可以分别设置“跟随”和“排除”的白名单和黑名单 URL 模式。通过将爬网策略改为“Configure URL patterns”来配置这些。

Portia开源可视化爬虫工具的使用学习

到此操作结束。可以在最右侧看到我们选中的项目。将所有需要提取的 items 注释完后,关闭样本(Close Sample)。如果以后需要再添加其他元素,可以继续配置此样本,方便后续抓取。

最后,在右侧可以看到我们需要的数据,JSON 格式如下。

启动程序

配置好了 sample page 和 start pages,接下来就是正式抓取数据了——将数据保存到 JSON 文件或者数据库中。这里我们以保存成 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(Spider 名字)、RESULT.json(保存结果的文件名)。

注意:启动程序前必须先关闭 Portia 的调试页面。这里我直接使用 kill 命令,因为在 docker 启动的终端按下 Ctrl+C 或 Ctrl+Z 都无效,只能用进程关闭。

举个例子,我的启动代码如下:

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

运行成功就能看到代码在飞快地跑了,而且抓取的都是我们想要的 items。

总结

到这里,Portia 的抓取之旅就告一段落了。通过使用 Portia,确实能实现快速、简易的抓取功能,并且将抓取过程可视化地呈现给操作者。还有其他有趣的功能,后续学习过程中遇到再继续分享。接下来会试着将它用到一些大规模的抓取场景中,看看实际效果如何。关于 Portia 的更多内容,可以继续关注本站后续文章。

本文转载于:https://www.jb51.net/article/246021.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注