User-Agentを一般のコンピュータに偽装してクロールする輩
『t_wの輪郭』にUser-Agentが下記のアクセスがちょいちょい来ていた。Date last visitedが乱れてちょっと気になる程度の頻度。
内部リンクが無いはずの所にアクセスしており、足跡が妙なため、nginxのログを見たら、なぜか律儀にrobot.txtにアクセスしている。
熱心な読者が来てくれているとぬか喜びしてしまった。
しかしまあ、輩と書いてしまったが、User-Agent以外はお行儀が良い。
『t_wの輪郭』にUser-Agentが下記のアクセスがちょいちょい来ていた。Date last visitedが乱れてちょっと気になる程度の頻度。
内部リンクが無いはずの所にアクセスしており、足跡が妙なため、nginxのログを見たら、なぜか律儀にrobot.txtにアクセスしている。
熱心な読者が来てくれているとぬか喜びしてしまった。
しかしまあ、輩と書いてしまったが、User-Agent以外はお行儀が良い。
User-Agentを一般のコンピュータに偽装してクロールする輩が出てきたので、robot.txtで有力な検索エンジン以外を除外。
「これも入れるべきだ」みたいなのがあればコメント求む。
User-agent: *
Disallow: /
User-agent: Googlebot
User-agent: bingbot
User-agent: DuckDuckBot
Allow: /
User-Agentを一般のコンピュータに偽装してクロールする輩が来て気になったのだが、私が動かしてるデライトをクロールするクローラ(dlt_crawler.js)のUser-Agentは何になってるんだろう。Node.jsでgotを使っているので、gotになっているはず……?
Node.jsでgotを使った際のUser-Agentはgot (https://github.com/sindresorhus/got)
となっていた。実際にサーバにgotを通してアクセスし、アクセスログを確認した
gotのレポジトリでuser-agentと検索してみると、headersという引数でUser-Agentを設定できそうだ。
headers: {
'user-agent': undefined
}
とりあえず、dlt_crawler.js by t_w(https://towasys.com/)
としておこう。こちらUser-Agentが反映されていることをサーバにアクセスして確認済みだ。
コードは以下のようになった。
response = await got(url, {
headers: {
'user-agent': 'dlt_crawler.js by t_w(https://towasys.com/)'
}
});
というかrobot.txtをガン無視しているのでお行儀が悪い気がしてきた。さらっと調べたらデライトにrobot.txtは設定されていないっぽい……?じゃあいいか……いいのか?