Scrapy下载中间件

酥酥 发布于 2021-09-18 77 次阅读


 

scrapy下载中间件使用

 

在settings.py中开启下载中间件

Downloader Middlewares默认的方法:

process request(self, request, spider):

当每个request通过下载中间件时,该方法被调用也就是创建request时

process response(self, request, response, spider)

当下载器完成http请求,传递响应给引擎的时候调用

比如可以用precess_request来破坏一些反爬

在settings.py中定义一些useragent
在Middleware中定义一个中间件
ua=random.choice(spider.settings.get("USER_AGENT_LIST"))
request.headers["User-Agent"]=ua

以上的中间件要去settings.py中注册一下

更多例子
cLass RandomUserAgent(object):
  def process_request(self, request, spider):
  useragent =random.choice(USER_AGENTS)
  request headers["User-Agent]=useragent
  ---->添加自定义的UA,给 request的 headers赋值即可
class ProxyMiddleware(object)
def process_request(selfs, request, spider)
request.meta["proxy]=http://124.115.126.76:808"
  添加代理,需要在 request的meta信息中添加 proxy字段
  ----->代理的形式为:协议+i地址+端口