sitemapcrawlerでルールを使用することはできますか? httpsの代わりにhttpリンクを持つ古いサイトマップを持つサイトがいくつかあります。私がそれらをクロールするたびに、すべてのリンクがリダイレクトされ(301)、その(および私)側で無駄なトラフィックが発生します。最も簡単な解決策は、リンクがクロールされる前に処理して、httpからhttpsにスキームを変更することだと思いました。クロールする前にscrapyのsitemapcrawlerが処理するリンク
私はルールでそれを行うことができますか、または単にデフォルトのミドルウェアを使用して、基本的にすべてのURLを基本的に2回解析できるようにすることはできますか?リダイレクトを無視することは解決策になるかもしれませんが、私はそれを「もっと汚い」と感じています。
実際に私はルールは何が必要ですかわかりません。私はそれらが私が必要としているものではないページをダウンロードした後に適用されると思います。 – maugch
クロールされたウェブサイトのサイトマップに他のサイトマップが含まれている場合があります。私は "sitemap_follow" regexpを使ってどのサイトマップURLに "sitemap_rules" regexpと組み合わせて、どのリンクのみを指定するかを定義しています。実行中のクローラは正常に機能しますが、クローラは指定されたURLのみを処理します。 –
クロールする前にsitemap_rulesが適用されていることを確認してください。私はあなたが望んでいないものを捨てるだけで、私が期待していることは本当にしないと思った。私はおそらく – maugch