单元八Python爬虫框架;;1.Scrapy
Scrapy是Python开发中的一个快速、高层次的屏幕抓取和Web抓取框架,用于抓取Web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、数据监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便地修改它。它还提供了多种类型的爬虫的基类,如BaseSpider、SitemapSpider等。
2.Crawley
Crawley能高速爬取对应网站的内容,支持关系数据库和非关系型数据库,数据可以导出为JSON、XML等格式。
3.Portia
Portia是一个用Python编写的、无需任何编程知识就能可视化爬取网站数据的开源工具。Portia是运行在Web浏览器中的,提供了可视化的Web页面,只需通过单击即可标注页面上需提取的相应数据,完成爬取规则的开发。这些规则还可在Scrapy中使用,用于抓取页面。
4.PySpider
PySpider是一个强大的网络爬虫系统,并带有强大的WebUI。PySpider采用Python语言编写,具有分布式架构,支持多种数据库后端,并具有强大的WebUI支持的脚本编辑器、任务监视器、项目管理器及结果查看器。
5.BeautifulSoup
BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库。它能够通过用户喜欢的转换器实现常用的文档导航、查找、修改等功能。BeautifulSoup会帮助用户节省数小时甚至数天的工作时间。获取HTML元素都是用bs4完成的。
6.Grab
Grab是一个网页爬虫抓取框架,为异步处理数据提供了多种有效的方法,可以构建各种复杂的网页抓取工具。
7.Cola
Cola是一个分布式的爬虫框架。对用户来说,使用Cola时只需编写几个特定的函数即可,而无须关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。
;;截止到2024年2月,Scrapy框架的最新版本为2.11.1,本书安装Scrapy2.11.1。现讲解使用命令方式和在PyCharm中安装Scrapy框架的方法。
1.使用pip命令安装
(1)查看Python版本和pip版本,命令如图8-1所示。
图8-1查看Python、pip版本
如果Python和pip的版本比较低,需要将其升级。
Python3.12.1按照单元01介绍的方法安装即可。
pip3的安装命令为apt-getinstallpython3-pip。
;
;2.在PyCharm环??中安装Scrapy框架
在PyCharm环境中安装Scrapy框架,请参照单元07中requests库的安装,只需要搜索“scrapy”即可;;Scrapy是一个使用Python编写的爬虫框架(CrawlerFramework),它简单轻巧,并且使用起来非常方便。Scrapy使用Twisted异步网络库来处理网络通信。Scrapy整体架构如下图所示。
;;Scrapy是通过Scrapy命令行工具进行控制的。在介绍命令行工具和子命令前,先熟悉一下Scrapy项目的目录结构。
在提取数据之前,需要先创建一个新的Scrapy项目。在Ubuntu20.04、Python3.12.1环境中,创建Scrapy项目并运行的主要流程如下(以pysrc项目名为例)。
(1)通过命令行定位到存放项目的目录。如在/home/scrapy/路径下建立一个文件夹,命令为mkdirpysrc。
(2)创建名为pysrc的Scrapy项目。进入上一步创建的pysrc文件夹,在终端输入命令scrapystartprojectpysrc,即可创建一个名为pysrc的项目,如图8-7所示,项目创建成功。
;pysrc目录下的文件分别如下。
?scrapy.cfg:项目配置文件。
?pysrc:Python项目模块,代码将从这里导入。
?pysrc/items.py:项目文件。
?pysrc/middlewares.py:定义爬虫中间件和下载器中间件。
?pysrc/pipelines.py:项目管道文件。
?pysrc/settings.py:项目设置文件。
?pysrc/spiders:放置爬虫的目录。
当使用tree命令时,系统可能会提示tree命令不能使用,此时需要安装,aptinstalltree可安装tree命令。
(3)设置items.py、pipelines.py、settings.py文件。
(4)在spiders文件夹下创建获取网页信息的文件。
(5)运行Scrapy框架。在命令行输入命令