Scrapy设置之Performance概览
来源:互联网 发布:mac cf 编辑:程序博客网 时间:2024/06/05 05:47
性能方面的设置选项可以让我们根据工作量来调整爬虫的性能。
CONCURRENT_REQUESTS
设置了最多可以同时处理的请求数目,它保护了你机器的输出带宽不超出负载,以防程序在同时爬很多个不同的站点(域名/IP)。不过除非是这种情况,一般而言还是CONRRENT_REQUEST_PER_DOMAIN
和CONCURRENT_REQUEST_PER_IP
更加有用。如果CONCURRENT_REQUEST_PER_IP
是非零值,那么CONCURRENT_PER_DOMAIN
设置项就会被忽略掉。要注意的是这些设置并不是以每秒为单位的,例如,假设你的CONCURRENT_REQUESTS
= 16,而平均每个请求花费的时间是0.25s,那么上限就是每秒16 / 0.25 = 64个请求。
CONCURRENT_ITEMS
设置了对于每个响应最多可以同时处理的Item
的数目。大多数情况下这个设置项作用不大,因为经常是每个页面或者请求的响应只有一个Item
。默认值是100,如果减小这个值,比如说减小到10或者1,甚至有可能会发现程序的性能会根据每个请求中Item
的数目和pipelines
的复杂度而有所提升。要注意一点,这个值的单位是每个请求,如果你的CONCURRENT_REQUESTS
= 16,CONCURRENT_ITEMS
= 100,那么就意味着最多会有1600个Items
试图写到数据库里。通常情况下可以把这个值设置得小一些。
关于下载的方面,DOWNLOAD_TIMEOUT
决定了下载器在取消一个请求之前的等待时间,默认情况下是180s,对于大多数情况下是远远够用的(如果是16个并发请求的话,180s就意味着一分钟才5个页面),建议你把这个值设置得小一些,比如如你有超时的问题的话,可以设置为10s。默认情况下,Scrapy把每次下载之间的延时设置为0,以加速网页的抓取。可以通过修改DOWNLOAD_DELAY
把下载延时设置大一些,因为有些网站会根据请求的频率来判断对方是否是一个网络爬虫。设置了DOWNLOAD_DELAY
之后,下载的延时会有一个正负50%的随机概率,不过也可以通过设置RANDOMIZE_DOWNLOAD_DELAY
为False
来禁用此功能。
最后,为了加快DNS查询,默认情况下有一个内存中的DNS缓存,可以通过DNSCACHE_ENABLED
来设置。
- Scrapy设置之Performance概览
- Scrapy概览
- Scrapy设置之Analysis
- Scrapy设置之Feeds
- Scrapy设置之深入
- Scrapy设置之自定义命令
- Scrapy设置之Crawling style
- Scrapy设置之Downloading media
- Scrapy之settings设置篇
- Scrapy架构概览
- Scrapy设置之提前终止爬虫
- Scrapy设置之Using proxies and crawlers
- Scrapy设置之HTTP缓存与离线工作
- CSS字体设置概览
- scrapy缺省设置
- scrapy设置代理proxy
- scrapy代理的设置
- scrapy设置"请求池"
- 第四次程序设计作业 C++计算器计算及命令行的使用 前缀表达式方法实现
- HDFS详解
- 最快速建立Android项目的JavaBean实体类
- java动态数组 2.0
- 大视野2186: 沙拉公主的困惑(求逆元)
- Scrapy设置之Performance概览
- LeetCode 17 Letter Combinations of a Phone Number
- 为什么我要成为最佳(二)
- [算法学习]20150409.1.插入排序
- mysql数据库导出的方法
- 10018---solrserver Extension
- C和指针笔记
- tslib安装 C compiler cannot create executables
- 导入java项目