人生100年!生涯エンジニア人生!

楽しいエンジニア人生!

長いURLに対して Scrapy するときの覚書

結論

Scrapy で長いURLを対象にするときは、設定ファイルのsettings.pyURLLENGTH_LIMITを書いてURLの最大長を記載する。
自分がやったときはURLの長さが3,800文字だったので、4,000文字に設定した。

# URL LENGTH
URLLENGTH_LIMIT = 4000

ログレベルについて

あるサイトを対象にScrapyしてたとき、次のページを取らないというバグが発生する。
ログを眺めているとDEBUGの文字とともにURLが長いからリンクを無視と出ている。

 [scrapy.spidermiddlewares.urllength] DEBUG: Ignoring link (url length > 2083): 対象URL

いや、気付けたから良いのですが、URLを無視するのはdebugでは無いと思っております。
私の考えですがdebugは開発時に使うもので、本番リリースするときは全て取り除いてほしいので、今回の件はwarning辺りに記載してほしいなと思いました。
warningなんて見ない!という考え方もありますが、その場合はinfoでもerrorでもかまいませんけど、今回の件ではdebugでは無いかなーと思います。