Closed gengogo5 closed 4 years ago
参考 https://doc-ja-scrapy.readthedocs.io/ja/latest/topics/settings.html#user-agent
パラメータとしてはrobots.txt用と通常リクエスト用に分かれている模様 Requestのヘッダに設定された値が優先される。
ただし、Requestだと差し込み箇所が多い sitemap_crawlerとregular_crawlerはRequestに直接触れていないので、 容易には追加できないように見える。
UserAgentMiddleware
とRobotsTxtMiddleware
を拡張して差し替えれば良さそう
認識が違っていた。
RobotsTxtMiddleware
は、クロール先のrobots.txtに書かれているUser-Agentとの照合用のユーザエージェントを持つようだ。
言ってみればrobots.txt用のユーザエージェントで、ROBOTSTXT_USER_AGENT
パラメータで指定する。デフォルトはNone。
Noneの場合はリクエストのUser-Agentが使われる。
リクエストのUser-Agentを上書きするにはUserAgentMiddleware
を使えば良い。
具体的には、スパイダーにuser_agent
フィールドを持たせればいいだけ。
スパイダーがデフォルトのユーザー・エージェントを上書きするには、その user_agent 属性を設定する必要があります。
DBのRulesに設定された
User-Agent
文字列をユーザエージェントとしてクロールに使用できるようにする。