scrapy中间件-随机请求头

在settings中原本是一个USER_AGENT,现在增加USER_AGENT_LIST列表,目的是每次爬虫一个网址的时候,不用总用同一个User-Agent

书写中间件:

settings中开通中间件:

此时已经完成了 每次爬取网址的时候使用不同的User-Agent的处理。

如果要查看每次用了哪些User-Agent?

可以在def parse中打印response的值即可。


 

展示:

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy中实现随机请求头可以通过自定义中间件来实现。以下是一个示例: 1. 首先,在你的Scrapy项目的middlewares.py文件中创建一个名为RandomUserAgentMiddleware的中间件类: ```python import random from scrapy import signals class RandomUserAgentMiddleware(object): def __init__(self, user_agents): self.user_agents = user_agents @classmethod def from_crawler(cls, crawler): return cls(crawler.settings.getlist('USER_AGENTS')) def process_request(self, request, spider): user_agent = random.choice(self.user_agents) request.headers.setdefault('User-Agent', user_agent) ``` 2. 在settings.py文件中添加以下配置: ```python USER_AGENTS = [ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', # 添加更多的用户代理字符串... ] DOWNLOADER_MIDDLEWARES = { 'your_project_name.middlewares.RandomUserAgentMiddleware': 543, } ``` 确保将your_project_name替换为你的Scrapy项目的名称。 这样,每次发送请求时,RandomUserAgentMiddleware中间件将从USER_AGENTS列表中随机选择一个用户代理字符串,并将其设置为请求的User-Agent头部。这样可以模拟不同的浏览器和设备发送请求,增加请求的随机性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值