python 爬虫 scrapy 和 requsts 哪个快_第7天|10天搞定Python网络爬虫,Scrapy爬更快

说了好几天用requests进行网络爬虫编程了,是时候换成专业,高效率的爬虫库--Scrapy了。我之所以一开始用requests,就想告诉你,网络爬虫,方法挺多的,合适就行。还有在之前说的各种解析库,在Scrapy中,也会经常用到,特别是Lxml的XPath。如果之前不说,留到现在还得说。

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.

在windows下安装Scrapy,用pip install Scrapy命令即可;在macOS下则用pip3 install Scrapy,如果网络正常,安装一般不会出现什么问题的。如果有什么问题的话,就按提示进行排查修护就好。真的不难的。

7.1 Scrapy的核心

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持.

Scrapy框架主要由五大组件组成,它们分别是:

调度器(Scheduler):从队列里获取下一步要抓取的网址,自动去除重复的。用户可以自己定制调度器;

下载器(Downloader):用基于twisted这个高效的异步模型,高速下载网络上的资源,简单易用。

爬虫(Spider):爬虫,是用户最关心的部分。用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

实体管道(Item Pipeline):用于处理爬虫(spider)提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

Scrapy引擎(Scrapy Engine):整个框架的核心,用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。75af3ffeffb1e0bb5d5088c6090cfd81e4081c7d.png

7.2 Scrapy建项目

打开命令行窗口(终端),输入:scrapy startproject storybook 新建项目,用cd命令,进入到storybook目录下,输入scrapy genspider story http://seputu.com/ 生成爬虫的基础代码。

用PyCharm打开storybook项目,在spiders目录里,新建main.py文件。相关文件的作用概述如下:

scrapy.cfg: 项目的配置文件;

items.py: 定义爬虫字段信息;

pipelines.py: 要作为爬虫数据的处理,过滤和保存数据(到数据库等);

settings.py: 项目的设置文件。

spiders: 存储爬虫代码目录。429dfcc24dea896aab8e3107a711c17791fc7b8d.png

.3 Scrapy爬小说

为了更好地理解Scrapy和之前的方式有什么不同,我们还是爬《盗墓笔记》,就爬第1页的详细页。页面详细内容分析,标题节点是在div.bg > h1的

里面,文章的内容节点是在div > div.content里的

标签里面。

1. 定义爬取内容

打开items.py文件,定义数据结构。一个标题,一个内容。b4694fac63586abd7a763bfdfaf4b24492f162b9.png

2. 实现爬取功能

打开story.py文件,输入如下代码,核心的内容在parse方法里面,response为返回的html内容,解析用的方法,跟之前的并没有什么不同。552ee35cc7c5089faab9e3ccdb23e4a78834bd04.png

3. 数据保存到文件

打开pipelines.py文件,将数据内容保存到txt文件中,怎么方便怎么来。95f7c0b99b791d18e1370f65fbc4276178e1ad7c.png

4. 指定处理文件

打开settings.py文件,进行相关参数配置,记得以下参数加进去。e0b8a61fc4ba6ad29ca6ab089f66626e6593426e.png

5. 让爬虫跑起来

运行story项目,有两个方法,一个是在命令行窗口输入:scrapy crawl story运行。一个是新建main.py文件,并输入如下代码。至于用哪一种,你喜欢就好。我选择main.py,是因为方便在PyCharm查看和调试。dbe44ce3f4972c6bf96aa61a8c8b022b7c1cae8e.png

好了,运行main.py文件之后,就会在spiders目录下,生成一个名叫《七星鲁王 第一章 血尸.txt》的文件,打开便可见到你喜欢的小说内容。

105c1c7f558d77b40b28a11dc1ff73e9acdc6a93.png

好了,有关Scrapy爬小说的内容,老陈讲完了,如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。分享Python,前端(小程序)、App和嵌入式方面的干货。关注我,没错的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值