Scrapy 性能

 

参考:https://blog.csdn.net/s150503/article/details/72571680

 

 

CONCURRENT_REQUESTS DOWNLOAD_DELAY

 

Scrapy 中 CONCURRENT_REQUESTS 与 DOWNLOAD_DELAY 的联系,先建立一个项目来找CONCURRENT_REQUESTS与DOWNLOAD_DELAY的联系

 

以豆瓣电影top250 为例

douban_spider.py

# -*- coding: utf-8 -*-import scrapy
import time
import re
from lxml import etree"""
scrapy 豆瓣登录响应结果乱码问题
https://www.jianshu.com/p/9974fc338242
"""class ExampleSpider(scrapy.Spider):name = 'douban'allowed_domains = ['example.com']# start_urls = ['https://movie.douban.com/top250?start={}&filter='.format(i) for i in range(0, 250, 25)]start_urls = ['https://movie.douban.com/top250?start={}&filter='.format(i) for i in range(10000)]custom_settings = {'DEFAULT_REQUEST_HEADERS': {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,''*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',"Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9","Connection": "keep-alive","Host": "movie.douban.com","Upgrade-Insecure-Requests": "1","User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'' (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36',},'CONCURRENT_REQUESTS': 10,'DOWNLOAD_DELAY': 0.01,'CONCURRENT_REQUESTS_PER_IP': 0,'CONCURRENT_REQUESTS_PER_DOMAIN': 10000,'FEED_EXPORT_ENCODING': 'utf-8'}def parse(self, response):current_url = response.urlprint(current_url)time.sleep(3)returnoffset = re.findall(r'start=(\d+)', current_url)[0]page_num = int(offset) // 25html = etree.HTML(text=response.text)# 先定位到 li 标签,data 是一个包含25个li标签的list,就是包含25部电影信息的listdata = html.xpath('//ol[@class="grid_view"]/li')index = 0for d in data:data_title = d.xpath('div/div[2]/div[@class="hd"]/a/span[1]/text()')data_info = d.xpath('div/div[2]/div[@class="bd"]/p[1]/text()')data_quote = d.xpath('div/div[2]/div[@class="bd"]/p[2]/span/text()')data_score = d.xpath('div/div[2]/div[@class="bd"]/div/span[@class="rating_num"]/text()')data_num = d.xpath('div/div[2]/div[@class="bd"]/div/span[4]/text()')data_pic_url = d.xpath('div/div[1]/a/img/@src')print(f"No: {str(page_num * 25 + index + 1)} {data_title}")index += 1passif __name__ == '__main__':from scrapy import cmdlinecmdline.execute('scrapy crawl douban'.split())pass

 

验证 1:

'CONCURRENT_REQUESTS': 10,
'DOWNLOAD_DELAY': 0.01,

CONCURRENT_REQUESTS 设置 为 10 时,理论上 可以并发 10个请求。但是  DOWNLOAD_DELAY 设置为 0.01 时,按  DOWNLOAD_DELAY 来算,可以并发 1 / 0.01 = 100 个请求,这两个取最小值 为 10,所以 并发 10个 请求。

几乎同一秒 并发 10 个左右的 请求

 

验证 2:

'CONCURRENT_REQUESTS': 10,
'DOWNLOAD_DELAY': 0.5,

CONCURRENT_REQUESTS 设置 为 10 时,理论上 可以并发 10个请求。但是  DOWNLOAD_DELAY 设置为 0.5 时,按  DOWNLOAD_DELAY 来算,可以并发 1 / 0.5 = 2 个请求,这两个取最小值 为 2,所以 并发 2个 请求。

 

总结:

DOWNLOAD_DELAY 会影响 CONCURRENT_REQUESTS,不能使并发显现出来。

 

 

思考:

1. 当有 CONCURRENT_REQUESTS,没有 DOWNLOAD_DELAY 时,服务器会在同一时间收到大量的请求。

'CONCURRENT_REQUESTS': 10,
# 'DOWNLOAD_DELAY': 0.5,

DOWNLOAD_DELAY 注释后,会使用默认值 0,

 

2. 当有 CONCURRENT_REQUESTS,有 DOWNLOAD_DELAY 时,服务器不会在同一时间收到大量的请求。

# 'CONCURRENT_REQUESTS': 0,
'DOWNLOAD_DELAY': 0.5,

CONCURRENT_REQUESTS 注释后,会使用默认值 16,

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G 发展报告:以四项技术为基础,广泛应用还需十年

来源:36Kr摘要:近年来,在5G领域的竞争非常激烈。但5G的部署与应用到底是一个什么样的过程?人们到底需要多久才能普遍用上5G技术?日前,CB Insights发表了一篇报告,在对无线技术的背景进行研究的基…

33个优秀的 jQuery 图片展示插件分享

这篇文章收集了33个优秀的 jQuery 图片插件分享给大家。jQuery 是一个非常优秀的 JavaScript 框架,使用简单灵活,同时还有许多成熟的插件可供选择,其中最令人印象深刻的应用之一就是对图片的处理,它可以让帮助你在你的项目中加入一…

安卓逆向_13 --- AndroidStudio + Smalidea 动态调试 smali 代码【APK可调试】、gradle 配置

教我兄弟学Android逆向04 动态调试smali代码:https://www.52pojie.cn/thread-658865-1-1.html From:Android Studio 3.6 调试 smali:https://blog.csdn.net/jha334201553/article/details/104494732 From:SmalideaIntelliJ IDEA/…

IEEE协会首次在京举办研讨会,王飞跃称不存在AI芯片

本文来源:网易智能摘要:6月9日至10日,IEEE SMC学会(IEEE System,Man,and Cybernetics Society)与中国自动化学会、中国科学院自动化研究所、青岛智能产业技术研究院共同在京举办IEEE人工智能与控…

安卓逆向_14 --- 单机和弱联网游戏内购 突破口 和 思路

From:https://www.bilibili.com/video/BV1UE411A7rW?p41 Android 逆向资源收集( apk ):https://blog.csdn.net/qq_36869808/article/details/79290420 Android逆向-Android基础逆向7(内购干货集合)&#…

OpenAI最新研究:如何通过无监督学习提升「自然语言理解能力」?

来源:amazonaws.com摘要:长期以来,使用无监督(预)训练来提高区别性任务的性能表现一直是机器学习研究的一个重要目标。最近,OpenAI通过使用一个具有可扩展性的任务不可知系统,在一系列不同的自然…

安卓逆向_15( 一 ) --- JNI 和 NDK

From:较详细的介绍JNI:https://blog.csdn.net/lizhifa2011/article/details/21021177 From:https://www.jb51.net/article/126111.htm NDK 官方文档:https://developer.android.google.cn/training/articles/perf-jni JNI / NDK …

Nature:科学家成功绘制出大脑神经细胞“地图”

图片来源:Thomas Hainmller, Marlene Bartos来源:生物谷摘要:最近,一项刊登在国际杂志Nature上的研究报告中,来自弗莱堡大学的科学家们通过研究开发出了一种新型模型来解释大脑如何储存一些“有形事件”(ta…

互联网的大脑模型与原子的太阳系模型,科学史上的巨系统对比

作者:刘锋 计算机博士,互联网进化论作者科学探索中,有两种重要的促进力量,第一种是认同,会帮助研究者增强对探索方向的信心和勇气,第二种是批判,会帮助研究者获知探索路上的障碍和陷阱。10年前…

安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo

From:Android Studio 3.0 JNI 的实现:https://blog.csdn.net/ziyoutiankoong/article/details/79696279 Android Studio 生成so包和.H文件给jni调用产生新so包。(即so包调so包):https://blog.csdn.net/sxh_android/article/details/80694291…

卡内基梅隆大学机器学习系副主任邢波:AI落地现在最缺的是思维方式

来源:亿欧摘要:邢波认为:人工智能现在最缺的不是算法和知识,而是落地应用的思维方式;数据如何被处理、系统如何被调试、资源如何配置,目前阶段还处于黑箱,很混沌的状态;人工智能未来…

安卓逆向_15( 三 ) --- Android NDK 开发【 jni 静态注册、JNI_OnLoad 动态注册】

Android Studio开发JNI示例:https://blog.csdn.net/wzhseu/article/details/79683045 JNI_动态注册_静态注册.zip : https://pan.baidu.com/s/1wpTYA9euSdPqE1Z2bA_BHA 提取码: 7h97 错误: 编码GBK的不可映射字符 ( https://blog.csdn.net/talenter111/article/de…

学界 | DeepMind等机构提出「图网络」:面向关系推理

来源:机器之心摘要:近日,由 DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同提交的论文《Relational inductive biases, deep learning, and graph networks》引起了人们的关注。深度学习虽然精于分类,但一直…

ARM 汇编基础教程番外篇 ——配置实验环境

From:https://zhuanlan.zhihu.com/p/29145513 win10 arm 汇编环境 Windows 平台下搭建 ARM 汇编集成环境:https://jingyan.baidu.com/article/4b52d70288bfcdfc5c774ba5.html 要调试 ARM 程序,我们需要: 能运行 ARM 程序的运行环…

asp.net调试方法

1、先将网站设为启动项目。 2、选择“启动选项”。 3、进行设置: 然后调试,在浏览器输入网址,此时如果遇到“断点”程序将自动停止运行,即可进行调试,查看运行中的变量的值。 转载于:https://www.cnblogs.com/gwjtssy/…

基因对智力的预测能力不到7%,别迷信它

图片来源:The Conversation撰文 Carl Zimmer翻译 李杨审校 贾晓璇编辑 魏潇2016 年我在写一本关于遗传的书时,曾对自己的基因组进行了测序。一些科学家还好心地指出了我基因组图谱的一些有趣特征,教我如何自己读取数据。从那以后,…

ARM 汇编语言入门

[翻译]二进制漏洞利用(二)ARM32位汇编下的TCP Bind shell:https://bbs.pediy.com/thread-253511.htm ARM汇编语言入门 From:ARM汇编语言入门(一):https://zhuanlan.zhihu.com/p/109057983 原文…

图灵奖演讲2018,59页PPT迎接芯片体系结构的新黄金时代

来源: 计算所控制计算实验室6月4日,在今年的国际计算机体系结构大会ISCA2018的图灵奖演讲会上,ACM/IEEE邀请了2017年图灵奖获得者John Hennessy与David Patterson联合进行了一场关于未来计算机体系结构发展道路探索的精彩演讲。二位图灵奖得主…

ARM 指令集 和 Thumb 指令集

From:https://gitee.com/lsliushuang/ASM/blob/master/arm汇编.txt ARM 汇编指令集汇总:https://blog.csdn.net/qq_40531974/article/details/83897559 ARM 指令集详解(超详细!带实例!):https://blog.csdn.net/micke…

花旗银行将因人工智能裁员50%,失业风波究竟要持续多久

来源:ofweek摘要: 在这个人工智能随时可能会取代人类工作的年代里,人们对自己的工作的未来应该去了解和重视,尤其是数字类别的行业,像是会计、税务、收费站是最早被人工智能替代的一批。在这个人工智能随时可能会取代人…