scrapy配置

高效抓取与调度:使用 Scrapy 实现高并发爬虫的调度与容错 本文深入探讨如何利用 Scrapy 框架实现高效稳定的网络爬虫。主要内容包括 Scrapy 的核心组件介绍、高并发调度配置(如并发请求控制、优先级队列)、容错机制(重试策略、超时处理、错误回调)以及分布式爬虫的实现方法(通过 Scrapy-Redis)。文章详细解析了如何通过合理配置提升爬虫性能,同时确保在面对网络异常或网站限制时的稳定性,为开发高效健壮的爬虫系统提供了实用指导。 阅读详情

scrapy配置

增加并发

并发是指同时处理的request的数量。其有全局限制和局部(每个网站)的限制。
Scrapy默认的全局并发限制对同时爬取大量网站的情况并不适用,因此您需要增加这个值。 增加多少取决于您的爬虫能占用多少CPU。 一般开始可以设置为 100 。不过最好的方式是做一些测试,获得Scrapy进程占取CPU与并发数的关系。 为了优化性能,您应该选择一个能使CPU占用率在80%-90%的并发数
在setting.py文件中写上CONCURRENT_REQUESTS = 100,scrapy中默认的并发数是32

降低log级别

当进行通用爬取时,一般您所注意的仅仅是爬取的速率以及遇到的错误。 Scrapy使用 INFO log级别来报告这些信息。为了减少CPU使用率(及记录log存储的要求), 在生产环境中进行通用爬取时您不应该使用 DEBUG log级别。 不过在开发的时候使用 DEBUG 应该还能接受。
setting.py文件中设置LOG_LEVEL = 'INFO'

禁止cookies

除非您 真的 需要,否则请禁止cookies。在进行通用爬取时cookies并不需要, (搜索引擎则忽略cookies)。禁止cookies能减少CPU使用率及Scrapy爬虫在内存中记录的踪迹,提高性能。
COOKIES_ENABLED = False

禁止重试

对失败的HTTP请求进行重试会减慢爬取的效率,尤其是当站点响应很慢(甚至失败)时, 访问这样的站点会造成超时并重试多次。这是不必要的,同时也占用了爬虫爬取其他站点的能力。

RETRY_ENABLED = False

减少下载超时

如果您对一个非常慢的连接进行爬取(一般对通用爬虫来说并不重要), 减小下载超时能让卡住的连接能被快速的放弃并解放处理其他站点的能力。

DOWNLOAD_TIMEOUT = 15,其中15是设置的下载超时时间

禁止重定向

除非您对跟进重定向感兴趣,否则请考虑关闭重定向。 当进行通用爬取时,一般的做法是保存重定向的地址,并在之后的爬取进行解析。 这保证了每批爬取的request数目在一定的数量, 否则重定向循环可能会导致爬虫在某个站点耗费过多资源。

REDIRECT_ENABLED = False

使用user_agent池

详细使用方法请看设置请求池

使用ip代理池

因为本人是学生党,因此暂时找到不到比较好的代理,所以这里只是写了一个一般的设置代理池的方法,不过在以后会写一个更好的代理池,用数据实现

设置延迟

DOWMLOAD_DELY=3,设置延迟下载可以避免被发现

启用调试工具

命令行调试

  • scrapy shell url 查看网页,不过这种方式可能对于要请求头的网页不行,对于一般的网页还是可以的
  • scrapy view shell 用来查看动态加载的网页,如果查看的网页用了动态加载,那么用这个命令行打开的网页就是不完整的,肯定缺少了什么

编辑器中的调试

在页面的任意位置添加如下代码

from scrapy.shell import inspect_response
def paser(self,response):
    inspect_response(response,self)     #当程序运行到这里就会跳出终端,并且在终端出现调试命令,当然这个可以随便写在哪里

暂停和恢复爬虫

初学者最头疼的事情就是没有处理好异常,当爬虫爬到一半的时候突然因为错误而中断了,但是这时又不能从中断的地方开始继续爬,顿时感觉心里日了狗,但是这里有一个方法可以暂时的存储你爬的状态,当爬虫中断的时候继续打开后依然可以从中断的地方爬,不过虽说持久化可以有效的处理,但是要注意的是当使用cookie临时的模拟登录状态的时候要注意cookie的有效期

只需要在setting.py中JOB_DIR=file_name其中填的是你的文件目录,注意这里的目录不允许共享,只能存储单独的一个spdire的运行状态,如果你不想在从中断的地方开始运行,只需要将这个文件夹删除即可

当然还有其他的放法:scrapy crawl somespider -s JOBDIR=crawls/somespider-1,这个是在终端启动爬虫的时候调用的,可以通过ctr+c中断,恢复还是输入上面的命令

不按照robots.txt

ROBOTSTXT_OBEY = False

配置请求头

只需要在settings中取消相应的设置即可

DEFAULT_REQUEST_HEADERS={{
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en',
    'User-Agent':'......'   #在此处设置
}}
scrapy-redis 配置 settings From:https://blog.youkuaiyun.com/weixin_37947156/article/details/75082061 小白进阶之Scrapy第三篇(基于Scrapy-Redis的分布式以及cookies池):https://cuiqingcai.com/4048.html 开始之前我们得知道scrapy-redis的一些配置:PS ... 阅读详情

相关推荐

Python 爬虫入门(十一):Scrapy高级应用之并发与分布式「详细介绍」

欢迎来到“Python 爬虫入门”系列文章。在前面的文章中,我们已经学习了如何使用 Scrapy 来构建基本的爬虫项目。本篇文章将深入探讨 Scrapy 的高级应用,特别是如何实现并发爬取和分布式爬取。并发爬取和分布式爬取是提升爬虫效率的两大关键技术。并发爬取允许我们同时发出多个请求,大幅提高爬取速度;分布式爬取则让我们能够将爬取任务分散到多个机器上执行,从而处理大规模数据的抓取任务。

blues_C的博客 2061

scrapy提升篇之配置

scrapy提升篇之配置增加并发 并发是指同时处理的request的数量。其有全局限制和局部(每个网站)的限制。 Scrapy默认的全局并发限制对同时爬取大量网站的情况并不适用,因此您需要增加这个值。 增加多少取决于您的爬虫能占用多少CPU。 一般开始可以设置为 100 。不过最好的方式是做一些测试,获得Scrapy进程占取CPU与并发数的关系。 为了优化性能,您应该选择一个能使CPU占用

码猿技术专栏 2982

基于scrapy框架采用异步高并发的方式抓取知乎千万用户信息

基于scrapy框架采用异步高并发的方式抓取知乎千万用户信息

Scrapy 请求并发数设置

  并发数可以在scrapy项目的settings.py文件中设置。   1.CONCURRENT_ITEMS     是指:最大并发项目数,默认100个。     2.CONCURRENT_REQUESTS     是指:下载器将执行的并发(即同时)请求的最大数量,默认16个。   3.CONCURRENT_REQUESTS_PER_DOMAIN     是指:任何单个域执行的并发(即同时)请...

weixin_43394129的博客 1059

WAVE格式

一.wave格式概述 Wave文件格式是用于多媒体文件存储的Microsoft RIFF(Resource Interchange FileFormat)的一个子集。每一个RIFF文件以一个文件头开始,后面是一系列数据块。Wave文件通常是包含“WAVE”块的RIFF文件。而该“WAVE”块由两个子块组成,称为“fmt”块。“fmt”块用于确定数据格式,并且“data”块包含实际的样本数据,

yejia1280的博客 4389

stm32最小系统_完成一个最小FOC矢量控制系统所需的基本模块和功能配置

当我们读懂 FOC 矢量控制的基本原理之后,便迫不及待的想动手尝试,去实现一个矢量控制系统,让电机先转起来,有一个直观的感受。因此,我们需要设计实现一个矢量控制的最小系统,具备矢量控制的基本功能,满足电机矢量运行的基本条件。首先,看一下矢量控制的基本架构:矢量控制架构如上图所描述,矢量控制系统包括实时电流的采集、clarke 变换、park 变换、SVPWM 、实时角度的反馈和计算以及电流环和速...

weixin_39524048的博客 1782

Scrapy 中的配置笔记

scrapy在命令启动之前,先设置好了各种配置文件。其中包括系统自带的默认配置文件,还有用户自定义的settings.py。其中还有一个日常开发中不怎么用的scrapy.cfg文件,这个文件是用来告诉scrapy用户自定义的settings.py文件在哪里的。

Minner 841

5G移动网络运维(优化)

5G 网络优化现状 移动通信行业属于技术密集型行业,是国民经济的重要支柱以及整个社会经济运转体系中不可或缺的基础。2019 年年底 5G 开始商用,截止到 2020 年3月,我国三大运营商建设了 16.1 万个 5G 基站,我国成为目前全球 5G 基站最多的国家。预计到 2020 年年底,我国运营商会建设大概 70 万个 5G 基站。基于 5G高频段的特性,信号覆盖距离会低于ins 基站,再加上 5G 万物互联的巨大经济潜力价值需求,后续三大运营商在 5G 基站建设数量上势必会超过当前 LTE 基站数量的

2301_78171382的博客 1323

scrapy安装及PyCharm的scrapy配置

安装scrapy(Windows) 1.进入cmd后,测试一下pip是否安装(pip  -h),如下,说明已安装 2.使用命令pip  install scrapy 安装scrapy 2.1.该过程中可能出现的问题:error:Unable to find vcvarsall.bat     解决方法:打开Python安装目录下的Lib/distutils/msv9comile

hahahahalll的博客 1万+

DTS 数据迁移

支持关系型数据库(MySQL, Oracle, SQL Server等)、NoSQL数据库、大数据系统等。DTS数据迁移是现代化数据架构调整和云迁移过程中的重要工具,能够大大降低数据迁移的复杂度和风险。DTS (Data Transmission Service) 是一种数据迁移和同步服务,:先迁移历史数据(全量),再实时同步新增变化(增量):不同数据库类型间迁移,如Oracle到MySQL。:将单库数据迁移到分库分表架构。:将业务数据迁移到分析型数据库。:将本地数据库迁移到云数据库。

qq_41081716的博客 748

汇川AM系列ethercat控制伺服的使用说明(含转矩模式)

本文以一个实际例子,介绍ethercat伺服驱动器的工作原理,以及在汇川AM系列PLC中,如何点动、定位、速度、转矩控制ethercat伺服。

qq_34047402的博客 5110

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.是否支持cookie,cookiejar进行操作cookie COO

优快云 8044

Python 爬虫实战:豆瓣 / IMDB 电影数据抓取(评分 + 剧情 + 演员阵容结构化处理)

在数据为王的时代,电影数据是进行市场分析、推荐系统构建和学术研究的重要资源。豆瓣和 IMDB 作为国内外最具影响力的电影评分和资讯网站,包含了海量高质量的电影数据。本文将带领你从零开始,构建一个健壮的 Python 爬虫,用于抓取豆瓣和 IMDB 的电影信息,并将其中的非结构化数据(如剧情简介、演员列表)进行清洗和结构化处理,最终存储到便于分析的结构化文件(如 CSV)中。

yansideyucsdn的博客 953

Scrapy的日志信息与配置

Scrapy的日志信息与配置1. 了解scrapy的日志信息2. scrapy的常用配置3. scrapy_redis配置4. scrapy_splash配置5. scrapy_redis和scrapy_splash配合使用的配置5.1 原理5.2 重写dupefilter去重类,并在settings.py中使用5.2.1 重写去重类5.2.2 scrapy_redis和scrapy_splash配合使用的配置6. 了解scrapy的其他配置7. 小结 学习目标: 了解 scrapy的日志信息 掌握 sc

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 853

电子科技大学计算机预推免(最终去向)

电子科技大学,预推免报名时必须要有一封本校老师写的推荐信,推荐信基本上就是复试的入场券,所以一定要提前联系老师,拿到推荐信。只要有机会进了面试,我觉得老师对于双非并不歧视,面试的个人表现才是关键性决定因素,技巧性也是很强的,如果有需要帮助的,欢迎私信~~

D1379951481的博客 3366

华为od 面试八股文_C++_02_含答案

华为od 面试八股文_C++_02_含答案

MISAYAONE的博客 3120

scrapy、scrapy_redis、scrapy_splash的配置

十一、scrapy的日志信息与配置 为防止混淆,做一个记录备用。 1.了解scrapy的日志信息 2.scrapy的配置 3.scrapy_redis的配置 4.scrapy_splash的配置 5.scrapy_redis和scrapy_spalsh配合使用的配置 在这里插入图片描述 ...

王涛涛的博客 632

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

scrapy实践之settings的配置

欢迎关注”生信修炼手册”!在scrapy创建的爬虫项目中,包括了以下4个基本文件1. items.py2. middlewares.py3. pipelines.py4. setting...

庐州月光的博客 1067

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

配置Scrapy环境

配置Scrapy环境,直接用下面的命令: pip install scrapy 出现错误: You are using pip version 18.1, however version 20.2b1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command. 再用下面的命令更新pip: python -m pip install --upgrade pip

chenyukk的专栏 519

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

scrapy ☞ 发送邮件配置

使用scrapy内置邮箱插件发送爬虫执行情况邮件

北方佳人 3677

scrapy setting配置

AUTOTHROTTLE_START_DELAY = 3 开始下载时限速并延迟时间 AUTOTHROTTLE_MAX_DELAY = 60 高并发请求时最大延迟时间 AWS_ACCESS_KEY_ID 它是用于访问亚马逊网络服务。 默认值:无 AWS_SECRET_ACCESS_KEY 它是用于访问亚马逊网络服务。 BOT_NAME 它是一种可以用于构建用户代理机器人的名称。 默认值:“scrapybot” eg:BOT_NAME=“scrapybot” CONCURRENT_ITEMS 在用来并

s13596191285的博客 925

scrapy的常用setting配置

-----------------------------robots协议---------------------------------------------# 它是利用它的日志信息可以被格式化的字符串。# ------------------------全局并发数的一些配置:-------------------------------#-----------------------日志文件配置-----------------------------------PS:这玩意儿2.X的可以用。

qq_64184032的博客 608

Scrapy-Redis、Scrapy-splash、scrapy的日志信息与配置、scrapyd部署scrapy项目

1.分布式是什么 简单的说 分布式就是不同的节点(服务器,ip不同)共同完成一个任务 2. scrapy_redis的概念 scrapy_redis是scrapy框架的基于redis的分布式组件 3. scrapy_redis的作用 Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在: 通过持久化请求队列和请求的指纹集合来实现: 断点续爬 分布式快速抓取 4. scrapy_redis的工作流程 ...

wutongheihei666的博客 807

Python爬虫之scrapy的日志信息与配置

scrapy的日志信息与配置 学习目标: 了解 scrapy的日志信息 掌握 scrapy的常用配置 掌握 scrapy_redis配置 了解scrapy_splash配置 了解scrapy_redis和scrapy_splash配合使用的配置 1. 了解scrapy的日志信息 2. scrapy的常用配置 ROBOTSTXT_OBEY 是否遵守robots协议,默认是遵守 关于robots协议 在百度搜索中,不能搜索到淘宝网中某一个具体的商品的详情页面,这就是robots协议在起作用 Ro

不一样的花朵的博客 621

Scrapy-Selenium安装与配置指南

Scrapy-Selenium安装与配置指南 1. 项目基础介绍 Scrapy-Selenium 是一个开源项目,它作为一个Scrapy中间件,允许Scrapy框架处理JavaScript渲染的页面。这意味着Scrapy可以爬取那些需要JavaScript执行的页面,从而获取动态加载的内容。该项目主要使用Python编程语言。 2. 项目使用的关键技术和框架 Scrapy: Scrapy是一个强...

gitblog_00349的博客 803

scrapy的name变量_Scrapy配置项用法详解

Scrapy 提供了定制 Scrapy 组件的方法,用户可以定制核心(core)、插件(extension)、pipeline 及 spider 组件。如果使用某个配置文件,就需要设定环境变量 SCRAPY_SETTINGS_MODULE,其格式是以“.”连接起来的,而不是用“/”连接起来的。而且该模块必须能够在 Python 的搜索路径中。Scrapy 提供了很多种配置的方法,不同的方法有不同的...

weixin_30693337的博客 769
上一篇: scrapy settings设置详解
下一篇: scrapy 解决ip问题
唐僧不爱八戒
博客等级 码龄9年 158粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值