首页 > 其他分享 >Scrapy_下载中间件设置UserAgent

Scrapy_下载中间件设置UserAgent

时间:2023-06-25 19:34:49浏览次数:37  
标签:中间件 scrapy Scrapy useragent UserAgent 下载

Scrapy 中 Downloader 设置UA

下载中间件是Scrapy请求/响应处理的钩子框架。这是一个轻、低层次的应用。

通过可下载中间件,可以处理请求之前请求之后的数据。

如果使用下载中间件需要在Scrapy中的setting.py的配置DOWNLOADER_MIDDLEWARES才可以使用,

比如:

DOWNLOADER_MIDDLEWARES = {
  'myproject.middlewares.CustomDownloaderMiddleware': 543,
}

开发UserAgent下载中间件

问题

每次创建项目后,需要自己复制UserAgent到settings,比较繁琐


解决方案

开发下载中间件,设置UserAgent

代码

from fake_useragent import UserAgent


class MyUserAgentMiddleware:
  def process_request(self, request, spider):
    request.headers.setdefault(b'User-Agent', UserAgent().chrome)

三方模块

pip install scrapy-fake-useragent==1.4.4

配置模块到Setting文件

DOWNLOADER_MIDDLEWARES = {
  'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
  'scrapy.downloadermiddlewares.retry.RetryMiddleware': None,
  'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,
  'scrapy_fake_useragent.middleware.RetryUserAgentMiddleware': 401,
}

 

标签:中间件,scrapy,Scrapy,useragent,UserAgent,下载
From: https://www.cnblogs.com/jiangjiayun/p/17503771.html

相关文章

  • Scrapy_FormRequest对象的使用
    FormRequest是Request的扩展类,具体常用的功能如下:请求时,携带参数,如表单数据从Response中获取表单的数据FormRequest类可以携带参数主要原因是:增加了新的构造函数的参数formdata。其余的参数与Request类相同.formdata参数类型为:dictclassscrapy.http.FormRequest(ur......
  • Scrapy_Request对象Cookie的演示
     Cookie的使用importscrapyclassCookieSpider(scrapy.Spider):name="爬虫名"allowed_domains=["域名.com"]start_urls=["url地址"]defstart_requests(self):forurlinself.start_urls:cookie......
  • Scrapy_Request对象dont_filter演示
    importscrapyclassBaiduSpider(scrapy.Spider):name="baidu"allowed_domains=["baidu.com"]start_urls=["https://baidu.com"]defparse(self,response):title=response.xpath('//title/text......
  • Scrapy 中 Request 的使用
    爬虫中请求与响应是最常见的操作,Request对象在爬虫程序中生成并传递到下载器中,后者执行请求并返回一个Response对象一个Request对象表示一个HTTP请求,它通常是在爬虫生成,并由下载执行,从而生成Response参数url(string)-此请求的网址callback(callable)-将使用此请求的响......
  • Scrapy 中 CrawlSpider 使用(二)
     LinkExtractor提取链接创建爬虫scrapygenspider爬虫名域名-tcrawlspiderfromscrapy.linkextractorsimportLinkExtractorfromscrapy.spidersimportCrawlSpider,RuleclassXsSpider(CrawlSpider):name="爬虫名"allowed_domains=["域名"]......
  • Scrapy 中 CrawlSpider 使用(一)
    创建CrawlSpiderscrapygenspider-tcrawl爬虫名(allowed_url)Rule对象Rule类与CrawlSpider类都位于scrapy.contrib.spiders模块中classscrapy.contrib.spiders.Rule(link_extractor,callback=None,cb_kwargs=None,follow=None,proces......
  • Scrapy 保存数据案例-小说保存
    spiderimportscrapyclassXiaoshuoSpider(scrapy.Spider):name="爬虫名"allowed_domains=["域名"]start_urls=["第一章url地址"]defparse(self,response):#章节名称title=response.xpath('//h1/......
  • Scrapy_ImagePipeline保存图片
    创建一个项目scrapystartprojectmyfrist(project_name)创建一个爬虫scrapygenspider爬虫名爬虫地址需要安装pillowpipinstallpillow报错:twisted.python.failure.FailureOpenSSL.SSL.Error解决方案pipuninstallcryptographypipinstallcryptography==36.0.2代......
  • Scrapy框架爬取豆瓣图书实例
    douban.pyimportscrapyimporttimefrombs4importBeautifulSoupfromscrapyimportRequestfromScripts.ScrapyProject.itemsimportbookItemclassDoubanSpider(scrapy.Spider):name="douban"allowed_domains=["book.douban.com&......
  • 【2】springCloud 2021 中间件基本使用方法
    RabbitMQBroker异步调用好处:吞吐量提升:无需等待订阅者处理完成,响应更快速故障隔离:服务没有直接调用,不存在级联失败问题调用间没有阻塞,不会造成无效的资源占用耦合度极低,每个服务都可以灵活插拔,可替换流量削峰:不管发布事件的流量波动多大,都由Broker接收,订阅者可以按照自......