【Scrapy框架二】爬虫settings.py中各配置参数含义

系列文章目录

上一篇:【Scrapy框架一】初步认识爬虫框架



前言

了解爬虫的配置文件settings.py各个字段的含义,对使用scrapy框架会有很大帮助,比如如何设置并发量,如何设置请求延时,如何设置遵守robots协议等等。所以在学习过程中,对接触到的爬虫参数做了归纳。


一、settings参数介绍

查看下默认的settings.py文件
默认settings.py

参数名称参数含义备注
BOT_NAME
SPIDER_MODULES
NEWSPIDER_MODULE
USER_AGENT
ROBOTSTXT_OBEYTrue:表示遵守robots协议
False:表示不遵守
CONCURRENT_REQUESTS爬虫并发请求数量,默认是16
CONCURRENT_REQUESTS_PER_DOMAIN
CONCURRENT_REQUESTS_PER_IP
DOWNLOAD_DELAY下载延时,默认是0,请求之间不等待
COOKIES_ENABLED是否启用cookie,默认启用
TELNETCONSOLE_ENABLED
DEFAULT_REQUEST_HEADERS默认请求报头
SPIDER_MIDDLEWARES爬虫中间件
DOWNLOADER_MIDDLEWARES下载中间件,指定的值越小优先级越高,启动顺序按照优先级从高到低在这里插入图片描述
EXTENSIONS
ITEM_PIPELINES管道文件,值越小优先级越高,启动顺序按照优先级从高到低
AUTOTHROTTLE_ENABLED
AUTOTHROTTLE_START_DELAY
AUTOTHROTTLE_MAX_DELAY
AUTOTHROTTLE_TARGET_CONCURRENCY
AUTOTHROTTLE_DEBUG
HTTPCACHE_ENABLED
HTTPCACHE_EXPIRATION_SECS
HTTPCACHE_DIR
HTTPCACHE_IGNORE_HTTP_CODES
HTTPCACHE_STORAGE

二、部分参数验证

2.1 ROBOTSTXT_OBEY验证

ROBOTSTXT_OBEY=True时,爬虫会遵守robots协议,如果爬取到robots.txt不允许爬的内容,就会出现下图中的提示:
遵守robots.txt
查看下robots.txt中的内容,发现/目录下的内容都不让爬取。
robots.txt内容
如果设置ROBOTSTXT_OBEY=False,会不会真的能爬取下数据,看下图确实是爬取下来了:
不遵守robots.txt协议
上面的网站是B站UP主‘程序员鱼皮’给粉丝做的一个关于学习网络安全的网站,很有趣,这个UP主实力也很强,能了解到不少知识。

2.2 待补充…


总结

除了以上默认的参数外,还有其他参数,遇到再进行补充。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Scrapy 项目的 settings.py 文件配置间件的先后顺序为: 1. 先配置自定义间件, 设置在 `DOWNLOADER_MIDDLEWARES` 和 `SPIDER_MIDDLEWARES` 2. 接着配置内置间件 例如: ```python DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.MyCustomDownloaderMiddleware': 543, 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': None, 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350, 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 400, 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 500, 'scrapy.downloadermiddlewares.retry.RetryMiddleware': 550, 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware': 580, 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 590, 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': 600, 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700, 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750, 'scrapy.downloadermiddlewares.stats.DownloaderStats': 850, 'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900, } SPIDER_MIDDLEWARES = { 'myproject.middlewares.MyCustomSpiderMiddleware': 543, 'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500, 'scrapy.spidermiddlewares.referer.RefererMiddleware': 700, 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware': 800, 'scrapy.spidermiddlewares.depth.DepthMiddleware': 900, } ``` 这里你可以看到在自定义间件之后是默认的间件,而且在配置时也会有优先级这么一个概念,数字越小优先级越高。 ### 回答2: 在Scrapy项目的settings.py文件,可以通过DOWNLOADER_MIDDLEWARES和SPIDER_MIDDLEWARES配置间件的先后顺序。 DOWNLOADER_MIDDLEWARES是用于配置下载器间件的,该间件可以通过修改请求和响应来拦截和处理请求和响应。可以通过修改settings.py的DOWNLOADER_MIDDLEWARES,设置列表的元素来确定间件的顺序。列表的元素按照从高优先级到低优先级的顺序执行。可以通过修改元素的顺序来调整间件的执行顺序。 SPIDER_MIDDLEWARES是用于配置爬虫间件的,该间件可以通过修改爬虫的输入和输出来拦截和处理爬虫的输入和输出数据。可以通过修改settings.py的SPIDER_MIDDLEWARES,设置列表的元素来确定间件的顺序。列表的元素按照从高优先级到低优先级的顺序执行。可以通过修改元素的顺序来调整间件的执行顺序。 例如,如果想要在下载器间件添加一个自定义的间件,并希望它在其他间件之前执行,可以将其添加到DOWNLOADER_MIDDLEWARES列表的第一个位置。如果想要在爬虫间件添加一个自定义的间件,并希望它在其他间件之后执行,可以将其添加到SPIDER_MIDDLEWARES列表的最后一个位置。 通过调整间件的先后顺序,可以灵活地处理请求和响应以及爬虫的输入和输出,实现特定的功能和逻辑。 ### 回答3: Scrapy是一个功能强大的Python爬虫框架,可以用于爬取和提取网页数据。在Scrapy间件是一个流程处理器,可以对请求和响应进行预处理和后处理。通过在项目的settings.py文件进行配置,可以控制间件的先后顺序。 在settings.py文件,有一个名为`DOWNLOADER_MIDDLEWARES`的配置项,它是一个字典,用于指定间件及其优先级。 比如,我们可以将`DOWNLOADER_MIDDLEWARES`配置为: ```python DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.Middleware1': 543, 'myproject.middlewares.Middleware2': 544, 'myproject.middlewares.Middleware3': 545, } ``` 在这个例子,`myproject.middlewares.Middleware1`是第一个间件,优先级为543。`myproject.middlewares.Middleware2`是第间件,优先级为544。`myproject.middlewares.Middleware3`是第三个间件,优先级为545。 Scrapy会按照优先级来执行间件,从而达到预期的处理顺序。较小的优先级值会被优先执行。在上面的例子,Middleware1总是会被最先执行,然后是Middleware2,最后是Middleware3。 当然,也可以通过修改优先级值来调整间件的执行顺序。较小的优先级值会被先执行,较大的优先级值会被后执行。 总结来说,通过在项目的settings.py文件配置`DOWNLOADER_MIDDLEWARES`,可以调整Scrapy间件的执行顺序,从而实现对请求和响应的定制化处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值