目录
一、下载中间件的用处
二、下载中间件主要方法
class Scrapypro01DownloaderMiddleware:
# 拦截所有请求(正常 或 异常)
# 参数: request拦截的请求,spider是爬虫类实例化的对象
def process_request(self, request, spider):
# 这样的写法一般不用,一般在配置文件里配置就好
request.headers['User-Agent']='xxx' # 动态进行修改
request.headers['Cookie'] = 'xxxxxx' # 动态进行修改
return None # or request 区别不大
# 拦截所有响应对象
# response是拦截到的响应对象,request响应对象对应的响应请求对象
def process_response(self, request, response, spider):
response.text="123" #篡改数据
return response
# 拦截异常请求
# request就是拦截到的发生异常的请求
# 作用: 想要将异常的请求进行修正,将其变成正常请求,然后对其进行重新发送
def process_exception(self, request, exception, spider):
# 请求的ip被禁掉,该请求就变成异常请求
request.meta['proxy']='http://ip:port' # 设置代理
return request # 将异常请求修正后将其进行重新发送
设置Cookie时只需要将配置文件里配置如下即可每次请求都携带得到的cookie:
COOKIES_ENABLED = True
请求当中如果产生了cookie会被自动记录下来到其他请求中。
三、开启下载中间件配置
settings.py里开启如下:
DOWNLOADER_MIDDLEWARES = {
'scrapyPro01.middlewares.Scrapypro01DownloaderMiddleware': 543,
}