走近代码之Python–爬虫框架Portia | 艾伯特

走近代码之Python–爬虫框架Portia | 艾伯特Portia nbsp 基于 Scrapy 的可视化数据采集框架走近代码之 Python 爬虫框架 Scrapy1 框架特性基于 scrapy 内核可视化爬取内容 不需要任何开发专业知识动态匹配相同模板的内容 2 安装 Windows 推荐使用 Docker 安装安装 DockerToolBo 启动 nbsp dockerrun v F pywp portia app data projects

Portia –基于Scrapy的可视化数据采集框架

走近代码之Python–爬虫框架Scrapy

1框架特性

基于 scrapy 内核

可视化爬取内容,不需要任何开发专业知识

动态匹配相同模板的内容

2安装

Windows 推荐使用 Docker 安装

安装 Docker ToolBox

启动 docker run -v /F/pywp/portia:/app/data/projects:rw -p 9001:9001 scrapinghub/portia:portia-2.0.7

/F/pywp/portia 是 protia 项目的路径,如果没有项目,可以随便输入一个绝对路径,docker 会自动创建

在浏览器中输入地址 http://192.168.99.100:9001

192.168.99.100 是 C:\Users\[UserName]\.docker\machine\machines\default\config.json 文件中配置的Driver.IPAddress

3可能遇到的问题

Docker 下载安装镜像的过程可能会很慢,可以使用代理,或者使用国内的 DaoCloud 镜像市场。

根据文档描述,在绑定了 9001 端口以后,可以使用地址 localhost:9001 访问,但是在windows 系统下却显示链接无法访问。

原因是:Docker 是运行在 Linux 上的,在 Windows 中运行 docker,实际上还是在 Windows 下先安装了一个 Linux 环境,然后在这个系统中运行的 docker。也就是说,服务中使用的 localhost 指的是这个 Linux 环境的地址,而不是我们的宿主环境 Windows,所以必须使用 Windows 分配给虚拟的 Linux 环境的 ip:port 192.168.99.100:9001 访问。

Demo

官方 portia管理平台: https://portia.scrapinghub.com/

爬取数据的工作流程主要分为两步,完全没有编程知识的人都可以操作:

1 Follow Links

走近代码之Python–爬虫框架Portia | 艾伯特

2 Extracts data:

走近代码之Python–爬虫框架Portia | 艾伯特

3 可以在右侧看到当前页面所有提取的数据:

走近代码之Python–爬虫框架Portia | 艾伯特

运行爬虫

1:Portia 提供导出为 Scrapy 的功能,导出以后,可以使用 Scrapy 来运行爬虫

走近代码之Python–爬虫框架Portia | 艾伯特

2: 可以使用 Portia 的命令 portiacrawl project_path spider_name -o output.json 来运行

3: 在 ScrapingHub 点击运行,可以在 web 页面上可视化的查看结果,导出数据

走近代码之Python–爬虫框架Portia | 艾伯特

架构

slyd:为创建爬虫工程提供可视化的编辑器

slybot:真正可视化和爬取的核心Scrapy:基于 Scrapy 爬虫框架实现,其中使用了 scrapy-splash 第三方中间件来提供JS渲染服务。

Splash:是一个 Javascript 渲染服务。它是一个实现了 HTTP API 的轻量级浏览器,Splash 是用 Python 实现的,同时使用 Twisted 和 QT。Twisted(QT)用来让服务具有异步处理能力,以发挥webkit的并发能力。

Scrapely :是从HTML页面提取结构化数据的库。

源码分析

Portia 的爬虫核心就是使用了 scrapy,源码分析可以参考

走近代码之Python–爬虫框架Scrapy

4部署Portia 只能可视化的创建一个 scrapy 爬虫,并不能在网页可视化的部署运行。如果需要 web 端可视化管理爬虫有两种方法

需要 Scrapinghub 的 Scrapy Cloud,深度使用需要收费。

或者使用 scrapyd 和 scrapyd-client 来部署和管理 scrapy 爬虫.

走近代码之Python–爬虫框架Portia | 艾伯特

查看 jobs:

走近代码之Python–爬虫框架Portia | 艾伯特

5框架总结

Portia 只是一个可视化编辑爬取规则编辑器,最终创建出来的是一个 scrapy 爬虫项目。如果想要对爬虫进行部署,管理,还是需要学习 scrapy 相关知识。

只能爬取扁平化、结构单一的网站,对于爬取层次较深的网站比较难编写爬取规则。

因为可以匹配相同结构的模板,所以擅长爬取列表页的数据

Docker 在 Windows 上部署比较麻烦,推荐在 Linux 环境下部署 Portia。
















































































































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211792.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午9:36
下一篇 2026年3月18日 下午9:36


相关推荐

  • Keil(MDK-ARM)介绍、下载、安装与注册[通俗易懂]

    Keil(MDK-ARM)介绍、下载、安装与注册[通俗易懂]推荐分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang推荐在我的公众号「strongerHuang」或网站(www.strongerhuang.com)阅读以下教程:Keil系列教程01_Keil介绍、下载、安装与注册Keil系列教程02_新建基础软件…

    2022年6月10日
    60
  • js和java那个难_javascript与java哪个难?

    js和java那个难_javascript与java哪个难?javascript与java哪个难?答案是:JavaScript比Java更难。那么这是为什么?下面本篇文章就来给大家介绍一下,希望对大家有所帮助。原因:JavaScript有太多东西需要你自己去理解,这些东西里有很多要么Java已经给你做成范式了,你可以通过学习范式来理解;要么就是根本没有,无需理解。JavaScript需要在语言的基础上再整理一套方法论,这个过程会有不同流派。而Java基本上…

    2022年7月7日
    31
  • SORT 多目标跟踪算法笔记[通俗易懂]

    SORT 多目标跟踪算法笔记[通俗易懂]sort是一种简单的在线实时多目标跟踪算法。文章要点为:以IoU作为前后帧间目标关系度量指标;利用卡尔曼滤波器预测当前位置;通过匈牙利算法关联检测框到目标;应用试探期甄别虚检;使用FasterR-CNN,证明检测好跟踪可以很简单。技术方案所提方法以检测作为关键组件,传播目标状态到未来帧中,将当前检测与现有目标相关联,并管理跟踪目标的生命周期。Detection为从…

    2025年8月14日
    6
  • 前端js面试题(基础)「建议收藏」

    前端js面试题(基础)「建议收藏」1、js中使用typeof能得到哪些类型?——undefined、string、number、boolean、object、function2、===和==分别在何时使用?//==的使用情况为以下2种(其他情况下推荐使用===)if(obj.a==null){ //相当于obj.a===null||obj.a===undefined}functionfn(a,b){ i…

    2022年8月26日
    7
  • vue中上传文件_vue下载文件乱码

    vue中上传文件_vue下载文件乱码vue文件上传下载报文件损坏

    2022年8月15日
    8
  • 快速上手Cursor,让AI替你敲键盘

    快速上手Cursor,让AI替你敲键盘

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号