目录
- 中间件介绍
- 1. 在中间件中设置使用cookie
- 2.启用中间件
- 总结
欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
本文以豆瓣为例子,抓取cookie的方式默认大家已经知道,简单来说登录豆瓣后f12抓包搜索cookie即可,实在不会可以看此文requests实战-comicai绘画ai通过cookie签到中介绍的方法.
中间件介绍
在Scrapy中有两个中间件SpiderMiddleware和DownloaderMiddleware
- SpiderMiddleware:
SpiderMiddleware是用于处理从Spider发出的请求和接收的响应的中间件。它负责在请求发送到引擎之前和响应从引擎返回给Spider之后进行预处理和后处理操作。
SpiderMiddleware可以用于修改请求的headers、URL、数据等内容,并且可以在接收到响应后对响应进行处理,例如解析数据、修改响应内容等。
- DownloaderMiddleware:
DownloaderMiddleware是用于处理引擎发往下载器的请求以及下载器返回的响应的中间件。它负责在请求发送到下载器之前和下载器返回响应到引擎之后进行预处理和后处理操作。
DownloaderMiddleware可以用于修改请求的headers、添加代理、设置User-Agent,cookie等操作,并且可以在下载器返回响应后对响应进行处理,例如检查状态码、解密内容等。
SpiderMiddleware主要负责处理Spider发出的请求和接收的响应,而DownloaderMiddleware主要负责处理引擎发往下载器的请求以及下载器返回的响应。它们分别在不同阶段对请求和响应进行处理,为爬虫提供了灵活的自定义操作和处理能力。
1. 在中间件中设置使用cookie
middlewares.py中
- 拿到我们的cookie
def get_cookies_dict():# cookie字符串转为字典并返回cookies_str='XXXXXXXXX'#你的豆瓣cookiecookies_dict={}for item in cookies_str.split('; '):# 用 "; "作为分隔符,分割字符串得到列表,比如说列表第一项 ll="118174key,vlaue=item.split('=',maxsplit=1)# 用 "="作为分隔符,分割"ll="118174",得到的key和value分别是 li 和 118174cookies_dict[key]=vlauereturn cookies_dictCOOKIES_DICT=get_cookies_dict #全局变量cookie字典
- 请求前使用cookie,注意是MyscrapyDownloaderMiddleware里的process_request
# 在进行下载请求之前的拦截
class MyscrapyDownloaderMiddleware:# Not all methods need to be defined. If a method is not defined,# scrapy acts as if the downloader middleware does not modify the# passed objects.@classmethoddef from_crawler(cls, crawler):# This method is used by Scrapy to create your spiders.s = cls()crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)return s# 下载请求前的操作def process_request(self, request, spider):# request.meta={'proxy':"socket5://127.0.0.1:1086"}#在中间件中请求前拦截请求 添加代理request.cookie=COOKIES_DICT #设置cookiereturn None
2.启用中间件
settings.py中新增
这里的543权重,数字越小越先执行.
# 配置下载中间件
DOWNLOADER_MIDDLEWARES = {"myscrapy.middlewares.MyscrapyDownloaderMiddleware": 543,
}
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2024 mzh
Crated:2024-3-1
欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
『未完待续』