Scrapy 是一个开源的、基于Python的爬虫框架,它提供了强大而灵活的工具,用于快速、高效地提取信息。Scrapy包含了自动处理请求、处理Cookies、自动跟踪链接、下载中间件等功能
用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
什么是中间件?
-
-
爬虫中间件(一般不会去用,就不多赘述了)
-
下载中间件
-
一、中间件的应用
1:中间件的介绍
1.1:中间件的运行顺序
下图可知:
答:因为没报错,process_exception函数 只有在报错才会触发(图二)。
例如:
2:process_request 拦截修改请求
1:开发代理中间件
2:开发UA中间件
3:开发Cookie中间件
补充:return返回值
return None # 这个地方就返回 None 就是正确的。 # return request # 如果返回的是 request 代表重新发起请求,这就死循环了。
3:process_response 拦截修改响应
1:修改响应数据
from scrapy.http import HtmlResponse
参数:
补充:return返回值
4、process_exception 拦截错误
5、spider的作用 (数据交互)
在中间件的3个函数中,都有 spider 这个参数,那这个参数是做啥的?
答:数据交互!
例如:
图二中:我们利用 spider.msg 就可以调用变量 msg
总结:由此我们可以得出,在中间件中只要有参数 spider 就可以调用 爬虫文件中的数据,进行数据交互(spider 就相当于 爬虫文件中类的实例化对象)。
图一: ⬇️
图二:⬇️
补充:管道中 spider 作用
如下图:
原文地址:https://blog.csdn.net/wojiubugaosuni12/article/details/134709435
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_39068.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!