常见爬虫框架介绍

        使用Python语言开发的爬虫框架有很多,但是实现方式和原理大同小异,用户只需深入掌握一种框架,对其他框架做简单了解即可。

        常见的Python框架主要有以下5种:Scrapy、Crawley、Portia、Newspaper和Python-goose,下面分别对这些框架进行简单介绍。

1.Scrapy框架

        Scrapy是用纯Python实现的一个开源爬虫框架,是为了高效地爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛,可用于爬虫开发、数据挖掘、数据监测、自动化测试等领域。

        Scrapy使用了Twisted(其主要对手是Tornado)异步网络框架来处理网络通信,该网络框架可以加快下载速度,并且包含了各种中间件接口,可以灵活地完成各种需求。

        Scrapy的官网地址是https://scrapy.org/,其官网界面如图1-1所示。

 图1-1   Scrapy官网界面 

        Scrapy功能很强大,她支持自定义Item和pipeline数据管道;支持在Spider中指定domain(网页域范围)以及相应的Rule(爬取规则);支持XPath对DOM的解析等。而且Scrapy还有自己的shell,可以方便地调试爬虫项目和查看爬虫运行结果。

        由于Scrapy运行速度快、操作简单、可扩展性强,它已成为目前最常用的通用爬虫框架,也是本节主要介绍的框架。

        示例:在Linux(Ubuntu)系统下的安装Scrapy

        如果要在Linux系统下使用Scrapy,任何进行Scrapy的安装?

        以下是使用的Linux系统是Ubuntu。Ubuntu是一个基于Linux的免费开源桌面PC操作系统,支持x86、amd64(即x64)和ppc结构,由全球化的专业团队开发(Canonical Ltd)打造。

        下面就介绍如何在Ubuntu系统下安装Scrapy:

        Ubuntu系统需要9.10或以上版本才能安装Scarpy。并且,在安装之前,应先确定Ubuntu上已安装最新版的Python和pip。Scarpy的安装步骤如下:

        (1)打开终端并更新系统:

    sudo apt-get update

        (2)安装Python和pip:

    sudo apt-get install python3 python3-pip

         (3)安装libxml2-dev和libxslt-dev:

    sudo apt-get install libxml2-dev libxslt-dev

        (4)安装build-essential:

    sudo apt-get install build-essential

        (5)安装Scrapy:

    pip3 install scrapy

如果您的系统中同时安装了Python 2和Python 3,则需要使用pip3命令来安装Scrapy。

        (6)验证Scrapy是否正确安装:

    scrapy version

如果成功安装Scrapy,则会显示Scrapy的版本信息。

2.Crawley框架

        Crawley是用Python开发出的、基于非阻塞通信(NIO)的Python爬虫框架,它能高速爬取对应网站的内容,支持关系型和非关系型数据库(如MongoDB、Postgre、Mysql、Oracle、Sqlite等)支持输出Json、XML和CSV等各种格式。

        Crawley框架的官方地址是https://pythonhosted.org/crawley,其官网主界面如图1-2所示。

图1-2   Crawley官网主界面 

        Crawley框架的功能也比较多,大家如果对Crawley感兴趣,也可以自行探索。

3.Portia框架

        Portia是scrapyhub开源的一款可视化的爬虫规则编写工具,提供可视化的Web页面,用户只需要点击标注页面上需要抽取的数据,不需要任何编程知识即可完成规则的开发(但是动态网页需要自己编写JS解析器)。

        Portia框架在GitHub上的项目地址为https://github,com/scrapinghub/portia,可以从该地址将Portia框架下载到本地使用。图1-3所示为Portia框架在GitHub上的主页。

图1-3   Portia框架在GitHub上的主页

        除此之外,Portia框架还提供了网页版,用户只需要注册一个账号,不需要下载框架就可以使用。网页版Portia的地址是:https://app.scrapinghub.com/,它的注册界面如图1-4所示。

图1-4   网页版Portia的注册界面

        Portia框架不需要任何编程基础就可以使用,用户如果感兴趣,可以通过它的在线网页自行探索该框架的使用方法。

4.Newspaper框架

Newspaper框架是专门用于提取新闻、文章和内容分析的爬虫框架。该框架的特点如下:

        (1)支持10多种语言(英语、中文、德语等)

        (2)所有内容都使用Unicode编码。

        (3)使用多线程下载文章。

        (4)能够识别新闻网站的URL。

        (5)能够从网页中提取文本和图片,并且从文本中提取关键词、摘要和作者。

        Newspaper框架在GitHub上的主页地址是https://github.com/codelucas/newspape,其页面如图1-5所示。

图1-5   Newspaper框架在GitHub上的主页

5.Python-goose框架

        goose本身是一个用Java语言编写的用于提取文章的框架,Python-goose是用Python语言对goose框架的重新实现。Python-goose的设计目的是爬取新闻和网页文章,并从中提取以下内容:

        (1)文章的主体;

        (2)文章中的图片;

        (3)文章中包含的所有YouTube/Vimeo视频;

        (4)元描述信息;

        (5)元标签。

        通过访问Python-goose框架在GitHub上的主页(地址是https://github.com/grangier/python-goose),可以将Python-goose框架下载到本地。Python-goose框架在GitHub上的主界面如图1-6所示。

图1-6   PYthon-goose框架在GitHub上的主界面

        总的来说,Python语言提供了多种爬虫框架供用户选择,包括Scrapy、Crawley、Portia、Newspaper和Python-goose。Scrapy是一个高效的开源爬虫框架,支持异步网络通信,功能强大且灵活,适用于各种爬虫开发和数据挖掘任务。Crawley是基于非阻塞通信的爬虫框架,具有快速爬取网站内容的能力,并支持多种数据库和数据格式。Portia是一个可视化的爬虫规则编写工具,无需编程知识,通过点击标注页面来定义规则,适合非技术背景的用户。Newspaper是专门用于提取新闻和文章内容的爬虫框架,支持多种语言和多线程下载,可以提取文本、图片、关键词等信息。Python-goose是goose框架的Python实现,用于爬取新闻和文章,并提取主体、图片、视频等元信息。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值