プロジェクトに余分な行を追加して、クロールスパイダーのユーザーエージェントをオーバーライドしようとしました 設定ファイル 。コードは次のとおりです。
[settings]
default = myproject.settings
USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
[deploy]
#url = http://localhost:6800/
project = myproject
しかし、自分のウェブに対してクローラーを実行すると、クモがカスタマイズされたユーザーエージェントではなくデフォルトの「Scrapy/0.18.2(+ http://scrapy.org ) 「。誰が私が間違ったことを説明できますか?.
注意:
(1)。 ser agent globally をオーバーライドしようとしたときに機能します:
scrapy crawl myproject.com -o output.csv -t csv -s USER_AGENT="Mozilla...."
(2)。構成ファイルから「default = myproject.setting」という行を削除し、scrapy crawl myproject.comを実行すると、「スパイダーを見つけることができません。」と表示されるため、この場合はデフォルト設定を削除しないでください。
事前に助けてくれてありがとう。
USER_AGENT行をsettings.py
ファイルではなく、scrapy.cfg
ファイルに移動します。 settings.py
は、items.py
コマンドを使用する場合はscrapy startproject
と同じレベルにする必要があります。この場合、myproject/settings.py
のようなものにする必要があります
スクレイピークロールを手動で制御するユーザーがここに着いた場合に備えて。つまり、notシェルからスクレイピークロールプロセスを使用します...
_$ scrapy crawl myproject
_
ただし、CrawlerProcess()
またはCrawlerRunner()
...を使用するように設定してください。
_process = CrawlerProcess()
_
または
_process = CrawlerRunner()
_
ユーザーエージェントは、他の設定とともに、構成変数の辞書でクローラーに渡すことができます。
このような...
_ process = CrawlerProcess(
{
'USER_AGENT': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
}
)
_