ページネーションを持つサイトから記事をスクラップします。基本的には、すべてのページが記事リンクのリストであり、スパイダーはparse_article
メソッドのページ上のリンクをたどり、次のページリンクをたどります。しかし、特定の数の記事が掻き取られた後、これを停止する方法はありますか?たとえば、これは私がこれまでcrawlspider
を使用しているものである:状態のページングを中止していますか?
rules = (
#next page rule:
Rule(LinkExtractor(restrict_xpaths="//a[@class='next']"),follow=True)
#Extract all internal links which follows this regex:
Rule(LinkExtractor(allow=('REGEXHERE',),deny=()),callback='parse_article'),
)
def parse_article(self, response):
#do parsing stuff here
私は150件の記事を解析されてきたら、次のページを次のように停止します。私は150を少し掻き分けても問題はありません。その数字を打つと次のページに行くのを止めたいです。それを行う方法はありますか? parse_article
メソッドにカウンタを持つような何か? scrapy
にちょうど新しいので、私は何を試していいのかわかりません.... depth_limitを調べましたが、私はそれが私が探しているものではないと確信しています。
ご協力いただきありがとうございます、ありがとうございます!
感謝を!しかし、複数のスパイダーを持つプロジェクトでは、このCLOSESPIDER_ITEMCOUNTを1つのスパイダーにのみ適用させることは可能ですか? – ocean800
@ ocean800私は自分の答えを更新しました。試してみてください期待どおりに動作したら教えてください –
遅く返事を申し訳ありませんが、うまくいきました:) – ocean800