提高Scrapy的爬取速度

在配置文件中修改相关参数:

  1. 增加并发

默认的scrapy开启的并发线程为32个,可以适当的进行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。

  1. 降低日志等级

在scrapy运行的时候,会输出大量的日志信息,为了减少cpu的使用率,可以设置log输出信息为INFO或者ERROR.在配置文件中编写LOG_LEVEL = ‘INFO’

  1. 禁止cookie

如果不是真的需要cookie,则在scrapy爬取数据的时候可以 禁止cookie从而减少CPU的使用率,提升爬虫效率,在配置文件中编写COOKIES_ENABLED= False

  1. 禁止重试

对失败的HTTP请求进行重新请求(重试),会减慢爬取速度。因此可以禁止重试,在配置文件中编写:RETRY_ENABLED = False

  1. 减少下载超时

如果对一个非常慢的链接进行爬取,减少下载超时可以让卡住的链接被快速放弃,从而提升爬取的效率。在配置文件中进行编写: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

你可能感兴趣的:(学习记录)