Portia开源可视化爬虫工具的使用学习
Portia是一款开源可视化爬虫工具,通过Docker部署后,可在浏览器中创建项目与Spider,设置起始页并建立页面样本。通过注释页面元素定义抓取字段,配置URL白名单与黑名单限制访问范围。完成配置后启动爬虫,可将数据保存为JSON文件,实现快速可视化抓取。
背景
最近在做一个可配置的爬虫模板,目标是能快速扩展新的抓取业务,最终做成一个可视化的配置服务。目前还在进行中,思路有些卡壳,所以打算翻翻市面上已有的轮子,看看能不能找到新的灵感。
安装
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”中输入项目名。

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

Portia 支持创建 page sample(页面样本)。创建了页面样本后,就可以调度后续任务按照设定的模板抓取元素。所以,我们需要先创建这样的模板。
page sample
创建 sample 后,就可以开始注释页面了。注释会将页面中的一条数据链接到项目字段,而这些就是我们想要提取的数据。

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

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

到此操作结束。可以在最右侧看到我们选中的项目。将所有需要提取的 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 的更多内容,可以继续关注本站后续文章。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。
CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。
Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。
CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。
Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。



























