scrapy「リクエストプール」の設定


爬虫類リクエストのよくあるエラー
  • 200:要求成功処理方式:応答の内容を取得し、処理
  • を行う.
  • 201:要求が完了し、結果として新しいリソースが作成されました.新しく作成されたリソースのURIは、応答するエンティティで処理されます.爬虫類では
  • に遭遇しません.
  • 202:要求は受け入れられるが、処理はまだ完了していない処理方式:ブロック待ち
  • .
  • 204:サーバ側は要求を実装したが、新しい情報は返されなかった.お客様がユーザーエージェントである場合、このために独自のドキュメントビューを更新する必要はありません.処理方法:廃棄
  • ,300:このステータスコードはHTTP/1.0のアプリケーションによって直接使用されず、3 XXタイプ応答のデフォルト解釈としてのみ使用される.使用可能なリクエストされたリソースが複数存在します.処理方式:プログラムで処理可能であればさらに処理を行い、プログラムで処理できない場合は
  • を破棄する.
  • 301:要求されたリソースには、永続的なURLが割り当てられます.これにより、将来、このURLを介してこのリソース処理方法を尋ねることができます.割り当てられたURL
  • にリダイレクトすることができます.
  • 302:要求されたリソースを異なるURLで一時的に保存する処理方法:一時的なURL
  • にリダイレクトする.
  • 304要求のリソース未更新処理方式:
  • を破棄する.
  • 400不正要求処理方式:
  • を破棄する.
  • 401無許可処理方式:
  • を廃棄する
  • ,403禁止処理方式:廃棄
  • 404処理方法が見つからない:
  • を破棄する
  • 5 XX応答コード「5」で始まるステータスコードは、サーバ側がエラーを発見したことを示す、要求処理を継続できないことを示す:
  • を破棄する.
    あまり話さないで直接コードを引く
        from scrapy import log    import random    from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware    class RotateUserAgentMiddleware(UserAgentMiddleware):
        # for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.php
        user_agent_list = [        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 "
            "(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 "
            "(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 "
            "(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 "
            "(KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 "
            "(KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 "
            "(KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 "
            "(KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 "
            "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 "
            "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
        ]    def process_request(self, request, spider):
            ua = random.choice(self.user_agent_list)        if ua:            #        useragent
                print "********Current UserAgent:%s************" % ua            #   
                log.msg('Current UserAgent: ' + ua)
                request.headers.setdefault('User-Agent', ua)