scrapy「リクエストプール」の設定
4091 ワード
爬虫類リクエストのよくあるエラー 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)