在配置文件中修改相关参数:
- 增加并发
默认的scrapy开启的并发线程为32个,可以适当的进行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。
- 降低日志等级
在scrapy运行的时候,会输出大量的日志信息,为了减少cpu的使用率,可以设置log输出信息为INFO或者ERROR.在配置文件中编写LOG_LEVEL = ‘INFO’
- 禁止cookie
如果不是真的需要cookie,则在scrapy爬取数据的时候可以 禁止cookie从而减少CPU的使用率,提升爬虫效率,在配置文件中编写COOKIES_ENABLED= False
- 禁止重试
对失败的HTTP请求进行重新请求(重试),会减慢爬取速度。因此可以禁止重试,在配置文件中编写:RETRY_ENABLED = False
- 减少下载超时
如果对一个非常慢的链接进行爬取,减少下载超时可以让卡住的链接被快速放弃,从而提升爬取的效率。在配置文件中进行编写:DOWNLOAD_TIMEOUT = 10 超时时间为10s
# -*- coding: utf-8 -*-
BOT_NAME = 'spider'
SPIDER_MODULES = ['spiders']
NEWSPIDER_MODULE = 'spiders'
ROBOTSTXT_OBEY = False
LOG_LEVEL = "INFO" # 输出级别
LOG_STDOUT = True # 是否标准输出
# change cookie to yours
DEFAULT_REQUEST_HEADERS = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0',
'Cookie':'SCF=AlvwCT3ltiVc36wsKpuvTV8uWF4V1tZ17ms9t-bZCAuiVJKpCsgvvmSdylNE6_4GbqwA_MWvxNgoc0Ks-qbZStc.; OUTFOX_SEARCH_USER_ID_NCOO=1258151803.428431; SUB=_2A25zjTjHDeRhGeBN6VUX9SvEzT-IHXVQjliPrDV6PUJbkdANLUvskW1NRJ24IEPNKfRaplNknl957NryzKEwBmhJ; SUHB=0ftpSdul-YZaMk; _T_WM=76982927613'
}
CONCURRENT_REQUESTS = 100
DOWNLOAD_DELAY = 3
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': None,
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': None,
'middlewares.IPProxyMiddleware': 100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 101,
}
ITEM_PIPELINES = {
'pipelines.MongoDBPipeline': 300,
}
RETRY_ENABLED = False
DOWNLOAD_TIMEOUT = 10
MONGO_HOST = '127.0.0.1'
MONGO_PORT = 27017