http://www.example.com/ABC/1
は、http://www.example.com/abc/1
と同じページであるように、大文字と小文字を区別しない、一連のURLを大文字と小文字を区別せずにクロールしています。私のCrawlSpiderでは、私は次のようになります実行した:両方のバリアントをピックアップいる重複のない大文字と小文字を区別しないURLのクロール
Rule(LinkExtractor(allow=('(?i)http://www.example.com/abc/\d+',))
を、私は重複フィルタがそれらを別々のページであることを考慮するため、二重のページをクロールしてしまいます。
RFPDupeFilter
をサブクラス化せずにDUPEFILTER_CLASS
の設定を変更せずに、1つのバリアントまたは他の(ただし両方ではなく)を訪問するように強制する簡単な方法はありますか?それとも最善の解決策ですか?
ですリンクのリストと修正されたリンクのリストを返すので、この回答のコードは最初に投稿されたとおりに失敗します。 – JoshAdel
ありがとうございます。私はこの特異性を忘れていました - はい、ルールは1つの座席で複数のリンクを抽出する可能性が高いので、 'process_links'メソッドはこれを反映しなければなりません。それに応じてコードを調整しました。 – rrschmidt
'links_as_lower'はまだ間違っています。 'l'は' Link'オブジェクトであり、生のURLではなく、 'links'の各' link'に対して 'l.url = l.url.lower()'を設定する必要があります。 – JoshAdel