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,一经查实,立即删除!

相关文章

在CentOS6虚拟机上安装VirtualBox增强功能

1. 安装编译需要的库和头文件yum install gcc -yyum install kernel sources -yyum install kernel-devel -y2. 安装VirtualBox增强功能3. 重新启动系统转载于:https://www.cnblogs.com/wdpp/archive/2011/07/13/2386255.html

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人工智能与控…

Lucene提供的条件判断查询[转]

Lucene提供的条件判断查询[转] 第一、 按词条搜索 - TermQuery query new TermQuery(new Term("name","word1")); hits searcher.search(query); 这样就可以把 field 为 name 的所有包含 word1 的文档检索出来了。 第二、 “与或”搜索…

安卓逆向_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…

SQL经典语句(转载)

一、基础<?XML:NAMESPACE PREFIX O ?> 1、说明&#xff1a;创建数据库CREATE DATABASE database-name 2、说明&#xff1a;删除数据库drop database dbname3、说明&#xff1a;备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBac…

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

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

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

Android Studio开发JNI示例&#xff1a;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…

scrapy-redis 使 redis 不止保存 url(例如:json)

scrapy-redis 使 redis 不止保存 url&#xff1a;https://my.oschina.net/u/4382439/blog/3712637 Scrapy-redis 和 Scrapyd 用法详解&#xff1a;https://zhuanlan.zhihu.com/p/44564597 Scrapy-redis GitHub 地址&#xff1a;https://github.com/rmax/scrapy-redis scrapy…

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

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

oracle 11g 下载地址

oracle 11g 下载地址&#xff1a;http://download.oracle.com/otn/nt/oracle11g/win32_11gR1_database.zip不需要注册&#xff0c;直接复制到迅雷或其他下载软件中即可下载。转载于:https://www.cnblogs.com/snake-hand/archive/2011/07/25/2452273.html

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

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

asp.net网站编码测试

1.常规asp.net网站 a.使用GBK编码时 1)form提交方式 ie&#xff1a;地址栏显示GBK编码后的字符串&#xff0c;输出中文 fireforx&#xff1a;地址栏显示GBK编码后的字符串&#xff0c;输出中文 chrome&#xff1a;地址栏显示GBK编码后的字符串&#xff0c;输…