Scrapy settings.py配置文件详解

二十一:scrapy中设置下载延时与自动限速 1、DOWNLOAD_DELAY   在settings中设置  DOWNLOAD_DELAY=2  #延时2秒,不能动态改变,导致访问延时都差不多,也容易被发现 2、RANDOMIZE_DOWNLOAD_DELAY   在settings中设置  RANDOMIZE_DOWNLOAD_DELAY=True  # 启用后,当从相同的网站获取数据时,Scrapy将会等待一个随机的值,延迟时间为0.... 阅读详情
# -*- coding: utf-8 -*-# Scrapy settings for demo1 project 
# 
# For simplicity, this file contains only settings considered important or 
# commonly used. You can find more settings consulting the documentation: 
# 
# http://doc.scrapy.org/en/latest/topics/settings.html 
# http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html 
# http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.htmlBOT_NAME = 'demo1' #Scrapy项目的名字,这将用来构造默认 User-Agent,同时也用来log,当您使用 startproject 命令创建项目时其也被自动赋值。SPIDER_MODULES = ['demo1.spiders'] #Scrapy搜索spider的模块列表 默认: [xxx.spiders] 
NEWSPIDER_MODULE = 'demo1.spiders' #使用 genspider 命令创建新spider的模块。默认: 'xxx.spiders' 
#爬取的默认User-Agent,除非被覆盖 
#USER_AGENT = 'demo1 (+http://www.yourdomain.com)'#如果启用,Scrapy将会采用 robots.txt策略 
ROBOTSTXT_OBEY = True#Scrapy downloader 并发请求(concurrent requests)的最大值,默认: 16 
#CONCURRENT_REQUESTS = 32#为同一网站的请求配置延迟(默认值:0) 
# See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay 
# See also autothrottle settings and docs 
#DOWNLOAD_DELAY = 3 下载器在下载同一个网站下一个页面前需要等待的时间,该选项可以用来限制爬取速度,减轻服务器压力。同时也支持小数:0.25 以秒为单位 
#下载延迟设置只有一个有效 
#CONCURRENT_REQUESTS_PER_DOMAIN = 16 对单个网站进行并发请求的最大值。 
#CONCURRENT_REQUESTS_PER_IP = 16 对单个IP进行并发请求的最大值。如果非0,则忽略 CONCURRENT_REQUESTS_PER_DOMAIN 设定,使用该设定。 也就是说,并发限制将针对IP,而不是网站。该设定也影响 DOWNLOAD_DELAY: 如果 CONCURRENT_REQUESTS_PER_IP 非0,下载延迟应用在IP而不是网站上。#禁用Cookie(默认情况下启用) 
#COOKIES_ENABLED = False#禁用Telnet控制台(默认启用) 
#TELNETCONSOLE_ENABLED = False #覆盖默认请求标头: 
#DEFAULT_REQUEST_HEADERS = { 
# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
# 'Accept-Language': 'en', 
#}#启用或禁用蜘蛛中间件 
# See http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html 
#SPIDER_MIDDLEWARES = { 
#'demo1.middlewares.Demo1SpiderMiddleware': 543, 
#}#启用或禁用下载器中间件 
# See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html 
#DOWNLOADER_MIDDLEWARES = { 
#'demo1.middlewares.MyCustomDownloaderMiddleware': 543, 
#}#启用或禁用扩展程序 
# See http://scrapy.readthedocs.org/en/latest/topics/extensions.html 
#EXTENSIONS = { 
#'scrapy.extensions.telnet.TelnetConsole': None, 
#}#配置项目管道 
# See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html 
#ITEM_PIPELINES = { 
#'demo1.pipelines.Demo1Pipeline': 300, 
#}#启用和配置AutoThrottle扩展(默认情况下禁用) 
# See http://doc.scrapy.org/en/latest/topics/autothrottle.html 
#AUTOTHROTTLE_ENABLED = True#初始下载延迟 
#AUTOTHROTTLE_START_DELAY = 5#在高延迟的情况下设置的最大下载延迟 
#AUTOTHROTTLE_MAX_DELAY = 60 
#Scrapy请求的平均数量应该并行发送每个远程服务器 
#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0#启用显示所收到的每个响应的调节统计信息:
#AUTOTHROTTLE_DEBUG = False#启用和配置HTTP缓存(默认情况下禁用) 
# See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings 
#HTTPCACHE_ENABLED = True 
#HTTPCACHE_EXPIRATION_SECS = 0 
#HTTPCACHE_DIR = 'httpcache' 
#HTTPCACHE_IGNORE_HTTP_CODES = [] 
#HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage' 
解释几个参数:
ROBOTSTXT_OBEY = True-----------是否遵守robots.txt
CONCURRENT_REQUESTS = 16-----------开启线程数量,默认16
AUTOTHROTTLE_START_DELAY = 3-----------开始下载时限速并延迟时间
AUTOTHROTTLE_MAX_DELAY = 60-----------高并发请求时最大延迟时间
最底下的几个:是否启用在本地缓存,如果开启会优先读取本地缓存,从而加快爬取速度,视情况而定
HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_IGNORE_HTTP_CODES = []
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
以上几个可以视项目需要开启,但是有两个参数最好每次都开启,而每次都是项目文件手动开启不免有些麻烦,最好是项目创建后就自动开启#DEFAULT_REQUEST_HEADERS = {#'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',#'Accept-Language': 'en',#}这个是浏览器请求头,很多网站都会检查客户端的headers,比如豆瓣就是每一个请求都检查headers的user_agent,否则只会返回403,可以开启#USER_AGENT = 'Chirco (+http://www.yourdomain.com)'这个是至关重要的,大部分服务器在请求快了会首先检查User_Agent,而scrapy默认的浏览器头是scrapy1.1 我们需要开启并且修改成浏览器头,如:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1但是最好是这个USER-AGENT会随机自动更换最好了。
下面的代码可以从预先定义的user-agent的列表中随机选择一个来采集不同的页面
在settings.py中添加以下代码
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware' : None,
'randoms.rotate_useragent.RotateUserAgentMiddleware' :400
}
rotate_useragent的代码为:
# -*- coding: utf-8 -*-
import random
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddlewareclass RotateUserAgentMiddleware(UserAgentMiddleware):
def __init__(self, user_agent=''):
self.user_agent = user_agentdef process_request(self, request, spider):
#这句话用于随机选择user-agent
ua = random.choice(self.user_agent_list)
if ua:
print('User-Agent:'+ua)
request.headers['User-Agent']=ua#the default user_agent_list composes chrome,I E,firefox,Mozilla,opera,netscape
user_agent_list = [/
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"/
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",/
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",/
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",/
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",/
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",/
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",/
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",/
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",/
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",/
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",/
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",/
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",/
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",/
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",/
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",/
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",/
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]
运行爬虫可以看到信息:
2017-04-16 00:07:40 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
User-Agent:Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3
2017-04-16 00:07:40 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET http://www.jianshu.com/robots.txt> from <GET http://jianshu.com/robots.txt>
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1
2017-04-16 00:07:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.jianshu.com/robots.txt> (referer: None)
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24
2017-04-16 00:07:41 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET http://www.jianshu.com/> from <GET http://jianshu.com/>
User-Agent:Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3也可以把user_agent_list放到settings文件中去:

 

Python爬虫之Scrapy框架系列(6)——settings.py配置文件的学习 阅读详情

相关推荐

YOLOv8魔改网络后训练全零?别慌,关掉AMP混合精度训练试试

本文探讨了YOLOv8魔改网络后训练出现全零指标的问题,指出AMP混合精度训练与自定义网络结构的不兼容性。通过分析梯度消失现象和AMP工作原理,提供了关闭AMP、调整学习率等解决方案,并建议预防性开发实践以避免类似问题。

weixin_28338005的博客 321

解决scrapy框架下数据采集遗漏问题

setting.py: # 解决爬取遗漏问题 AUTOTHROTTLE_ENABLED = True Request中加入参数:

Good Luck 8万+

GEE开发之Landsat8计算MNDWI和数据分析

上一篇博客介绍了landsat8计算NDWI以及数据的获取,这次介绍MNDWI(改进的归一化差异水体指数)。

等待着冬天的风的博客 8439

scrapy框架中settings文件中的参数详解,scrapy反反爬虫常用的一些方法以及解决爬虫过程中网页url重定向的问题

scrapy框架中settings文件中的参数详解,scrapy反反爬虫常用的一些方法以及解决爬虫过程中网页url重定向的问题

manfanying的博客 2060

vmware vsphere 证书过期告警处理方法

vSphere Clinet 管理页面出现“证书告警” ,检查证书未发现现有证书有过期现象

m0_51902127的博客 3635

A类功率放大器

在A类放大器中,导通角是完整的360°或100%的输入信号,而在其他类别的放大器中,晶体管在一个较小的导通角内导通。通过在输出级使用两个互补的晶体管,其中一个晶体管是NPN或N通道类型,而另一个晶体管是PNP或P通道(互补)类型,以所谓的 "推挽 "配置连接,可以获得比A类放大器更大的功率输出和效率。这种类型的电路效率很低(低于30%),而且对直流电源的消耗很大,输出的功率却很小。由于我们感兴趣的是向负载提供最大的交流功率,同时从电源中消耗尽可能少的直流电,所以我们主要关注的是放大器的 "转换效率"。

LSW20072007的博客 2463

python爬虫框架之Scrapy配置文件详解

日志的数据格式(默认: '%(asctime)s [%(name)s] %(levelname)s: %(message)s')可选的级别有: CRITICAL、 ERROR、WARNING、INFO、DEBUG(默认: 'DEBUG')如果为 True ,进程所有的标准输出(及错误)将会被重定向到log中(默认: False)日志的日期格式(默认: '%Y-%m-%d %H:%M:%S')将对任何单个IP执行的最大并发请求数(默认: 0)下载器超时时间(单位: 秒)(默认: 180)

m0_63040701的博客 1321

Shopee前端反爬三要素:x-sap-Ri、x-sap-Sec与af-ac-enc-dat深度解析

电商前端反爬机制本质是运行时环境可信验证,其核心在于动态生成的请求指纹、会话签名与行为加密载荷。这类机制不依赖静态Token,而是基于浏览器真实交互(如鼠标轨迹、页面可见性、时间精度)实时计算,体现JS运行时环境不可模拟性。技术价值在于将风控前移至客户端,大幅提升自动化绕过成本;典型应用场景包括商品价格监控、竞品数据采集与合规爬虫开发。本文聚焦Shopee实战案例,深入拆解x-sap-Ri(设备+行为哈希指纹)、x-sap-Sec(动态密钥签名)及af-ac-enc-dat(AES加密行为载荷)三大字段的生

weixin_29015127的博客 401

Python爬虫Scrapy框架:scrapy常用配置

一.基本配置 1.项目名称 2.爬虫应用路径 SPIDER_MODULES = [‘Amazon.spiders’] NEWSPIDER_MODULE = ‘Amazon.spiders’ 3.客户端User-Agent请求头 USER_AGENT = ‘Amazon (+http://www.yourdomain.com)’ 4.是否遵循爬虫协议 ROBOTSTXT_OBEY = False 5...

Python-全栈开发教程-入门到精通 359

基于深度学习的行人车辆检测与计数系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)

从YOLOv1到最新的YOLOv8,其网络结构、训练策略和损失函数不断优化,性能持续提升。image_path, _ = QFileDialog.getOpenFileName(self, "选择图片文件", "", "Image Files (*.jpg *.png *.jpeg *.bmp)")video_path, _ = QFileDialog.getOpenFileName(self, "选择视频文件", "", "Video Files (*.mp4 *.avi *.mov *.mkv)")

YOLO 225

安卓15_ROM修改定制化_____修改rom的前提条件 去除各种验证 安卓设备通用

通过博文了解💝💝💝 1-------💝💝💝了解安卓设备的启动流程与核心验证机制 2-------💝💝💝了解安卓设备修改rom中的各种验证机制以及对应的去除方法 3-------💝💝💝了解avb验证与dm验证的本质区别与对应的操作方式 4-------💝💝💝修改rom前的循序步骤 避免验证机制导致的不开机

小马哥的专栏 504

scrapy 中settings.py配置文件详解

settings.py配置文件中:# -*- coding: utf-8 -*- # Scrapy settings for demo1 project # # For simplicity, this file contains only settings considered important or # commonly used. You can find more ...

fenglei0415的博客 1011

在 SAP BTP Cloud Foundry 环境中开发 SAP HANA 的完整实战路线图

SAP HANA Cloud迁移路径解析:从本地到云原生的数据库现代化 本文梳理了SAP HANA在Cloud Foundry环境中的架构定位和实施路径,针对不同起点的项目提供迁移建议。核心内容包括: SAP HANA Cloud在Cloud Foundry中的双重角色:既作为平台服务提供数据库实例,又通过HDI容器管理MTA应用中的数据库工件。 针对四类典型项目起点的迁移策略: 绿地项目:直接采用CAP+SAP HANA Cloud组合 已有HANA service或XS advanced项目:需对照兼容

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 262

【Python_Scrapy学习笔记(三)】Scrapy框架之全局配置文件settings.py详解

settings.py 文件是 Scrapy框架下,用来进行全局配置的设置文件,可以进行 User-Agent 、请求头、最大并发数等的设置,本文中介绍 settings.py 文件下的一些常用配置

禾戊之昂的博客 1617

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Scrapy爬虫之settings.py配置文件详解

# -*- coding: utf-8 -*- # Scrapy settings for demo1 project # # For simplicity, this file contains only settings considered important or # commonly used. You can find more settings consulti...

会飞的鱼的博客 783

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python爬虫系列之----Scrapy(六)settings.py配置文件详解

让我们先来看下它里面的内容: # -*- coding: utf-8 -*- # Scrapy settings for demo1 project # # For simplicity, this file contains only settings considered important or # commonly used. You can find more setting

fendo 2万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Scrapy—第一个scrapy程序

一、spider文件编写 执行完scrapy genspider 应用名称 爬取网页的起始url 例如:scrapy genspider qiubai www.qiushibaike.com)会在spiders文件夹产生一个和应用同名的.py文件 # -*- coding: utf-8 -*- import scrapy class QiubaiSpider(scrapy....

HuQi 478

scrapy调试

1、scrapy shell是scrapy提供的一个终端工具,能够通过它查看scrapy中对象的属性和方法,以及测试xpath 使用方法: scrapy shell http://www.itcast.cn/channel/teacher.shtml 在终端输入上述命令后,能够进入python的交互式终端,此时可以使用: response.xpath():直接测试xpath规则是否正确...

weixin_41449756的博客 1131

爬虫知识7:scrapy的settings配置文件中各参数解释以及如何自定义类

建立完爬虫项目之后,都会有如下的结构:其中,settings.py文件是存放配置文件用的,初始化的settings文件,只有以下四个变量是默认定义好的,其他都是注释掉的。...

乐想屋 2782

Scrapy-Wayback-Machine 使用教程

Scrapy-Wayback-Machine 使用教程 Scrapy-Wayback-Machine 是一个专为 Scrapy 设计的中间件,用于从互联网档案馆(archive.org)的Wayback Machine抓取网页快照。本教程旨在引导您了解项目的结构、启动文件以及配置方式,以便您能高效地将此工具集成到您的爬虫项目中。 1. 项目目录结构及介绍 项目遵循典型的Python包结构,下面是主...

gitblog_00815的博客 1103

SCRAPY 如何为scrapy 添加命令

这里以添加执行所有的spider(蜘蛛)的命令为例: 1. 在spiders目录的同级目录下创建一个commands目录,并在该目录中创建一个crawlall.py,代码如下: from scrapy.commands import ScrapyCommand class Command(ScrapyCommand): requires_project = True def syntax(self): return '[options]' def sho

zhengpinghx的专栏 216

Python 爬虫,scrapy,settings配置文件

  项目名/settings.py(配置文件): # -*- coding: utf-8 -*- BOT_NAME = '项目名' # 项目名 SPIDER_MODULES = ['项目名.spiders'] # 爬虫模块的位置 NEWSPIDER_MODULE = '项目名.spiders' # 定义常量 (数据库地址)。 可以在代码中通过spider对象获取,也可以直接导入使...

houyanhua1的专栏 1300

[Python爬虫]使用Scrapy框架爬取图虫图片

启动文件main.py from scrapy.cmdline import execute execute('scrapy crawl tuchong'.split()) 在spiders下的执行爬虫文件 # -*- coding: utf-8 -*- import scrapy,json from ..items import tu_baoc #实例化函数 class T...

Black_God1的博客 1117
上一篇: python 制作下雪的情景
下一篇: python获取时间
唐僧不爱八戒
博客等级 码龄9年 158粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值