1

申し訳ありませんが、私はPythonとScrapyに本当に慣れていないので、試行錯誤しながらそれらを学ぼうとしています。

SgmlLinkExtractorに関しては、(少なくともこのサイトでは)誰もが正しいパスを表す正しいコードを見つけるのに本当に熟練していると思いますが、どこで/どのようにそれを学ぶことができますか?(allow=[r'page/\d+'])またはなどallow=[r'series-\d{1}-episode-\d{2}.']など。

コンテンツが常にstory.htmlにあるWebサイトを削除しようとしていますが、リンク形式は次のようになります。

http://www.example.com/folder/category/description/1234567/story.html

*注1234567は7桁の数字の変化です

私の開始URLはhttp://www.example.com/folder/です

私はSgmlLinkExtractor自分のパスを次のように使用して定義しようとしています。URLの説明部分と7桁の部分にあるものをすべて含めたいと思います。story.htmlURLが:で終わることを確認したい

Rule(SgmlLinkExtractor(allow=(r'category1/././story\.html',)), callback='parse_item', follow=True)

しかし、明らかに、/././story.htmlに到達するために2つのサブレベルをスキップすることはできません。

これを書く正しい方法は何SgmlLinkExtractorですか?

4

1 に答える 1

2

これを試して

Rule(SgmlLinkExtractor(allow=(r'category1/description/\d+/story\.html',)), callback='parse_item', follow=True)

/description/\d+/story\.htmlただし、カテゴリをクロールするのに十分な独自性があるため、このパーツのみを使用することをお勧めします

ルールでは正規表現に合格しているので、正規表現を学ぶだけで済みます。オンラインの正規表現テスターツールがたくさんあります。

于 2013-03-27T07:03:42.583 に答える