Scrapyの這い出し速度の向上

4271 ワード

プロファイルで関連パラメータを変更するには、次の手順に従います.
  • 同時増加
  • デフォルトのscrapyオープンのコンカレントスレッドは32個で、適切に追加でき、コンフィギュレーションファイルでCONCURRENT_を変更できます.REQUESTS=100は100、同時設定は100です.
  • ログレベルを下げる
  • scrapyの実行時には、大量のログ情報が出力、cpuの使用率を減らすために、INFOまたはERRORとしてlog出力情報を設定することができる.プロファイルにLOG_を記述するLEVEL = ‘INFO’
  • クッキー禁止
  • 本当にクッキーが必要でない場合は、scrapyでデータを取得するときにクッキーを禁止してCPUの使用率を減らし、爬虫類の効率を高め、プロファイルにCOOKIES_を書くことができます.ENABLED= False
  • 再試行禁止
  • 失敗したHTTPリクエストに対して再リクエスト(再試行)を行うと、スキップ速度が遅くなります.したがって、再試行を禁止し、プロファイルに:RETRY_を記述できます.ENABLED = False
  • ダウンロードタイムアウトを減らす
  • 非常に遅いリンクをスクロールすると、ダウンロードのタイムアウトを減らすことで、詰まったリンクが急速に放棄され、スクロールの効率が向上します.プロファイルでの作成:DOWNLOAD_TIMEOUT=10タイムアウト時間は10 s
    # -*- 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