上一篇文章中简单地讲述用scrapy进行简单爬虫流程
https://blog.youkuaiyun.com/reset2021/article/details/124449231?spm=1001.2014.3001.5502
这里在上篇文章的基础上讲述怎样用scrapy实现爬虫,并且保存到数据库中。
1、scrapy框架
scrapy框架如下图所示:

其中,包含两个中间件:下载器中间件(Downloader Middleware)和爬虫中间件(Spider Middleware)。使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫。
1) downloader Middleware
-
下载器中间件是介于
Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量、底层的系统 -
用于更换代理
IP,更换Cookies,更换User-Agent,自动重试。 -
Scrapy其实自带了UA中间件(UserAgentMiddleware)、代理中间件(HttpProxyMiddleware)和重试中间件(RetryMiddleware) -
从原则上说,要自己开发这3个中间件,需要先禁用
Scrapy里面自带的这3个中间件。要禁用Scrapy的中间件,需要在settings.py里面将这个中间件的顺序设为None
process_request(request, spider)
Request被Scrapy引擎调度给Downloader之前,process_request()方法就会被调用,也就是在Request从队列里调度出来到Downloader下载执行之前,我们都可以用process_request()方法对Request进行处理。
方法的返回值必须为None、Response对象、Request对象之一,或者抛出IgnoreRequest异常。
process_response(request, response, spider)
Downloader执行Request下载之后,会得到对应的Response。Scrapy引擎便会将Response发送给Spider进行解析。
在发送之前,我们都可以用process_response()方法来对Response进行处理。方法的返回值必须为Request对象、Response对象之一,或者抛出IgnoreRequest异常

本文详细介绍了如何使用Scrapy框架进行网络爬虫开发,并将抓取的数据保存到数据库中。首先,阐述了Scrapy的结构和中间件的作用,包括下载器中间件与爬虫中间件的功能及常用方法。接着,通过一个京东爬虫实例展示了如何配置关键词、数据库以及具体抓取和解析过程。最后,给出了执行爬虫命令查看结果的步骤。
最低0.47元/天 解锁文章
2076

被折叠的 条评论
为什么被折叠?



