2011-12-06 5 views
2

私は掻きたいURLのリストを持っています。治療中の内部リンクのみを許可する

私は3つのレベルの各URLに行きたいですが、私は外部URLに行きたくありません - 私のスタートリストのドメイン内のリンクのみ。

私はちょうどいくつかのURLでこれをやりたければ、私はallowed_domainsのリストに簡単に入れると思います。

あなたが3000件のURLを取得するときしかし、allowed_domainsリストはScrapyが処理するには大きすぎる(それは私の知る限り大きな正規表現に変換します)ので、それが壊れる...

任意のアイデア?

「ルール」リストの何かが良いでしょう。 rules = (Rule(SgmlLinkExtractor(allow = (<local_links_only??>)) ,callback = 'parse_item'),)

オフサイトミドルウェア内のもの - とにかく参照リンクを取得するには?

またはジョブをバッチ処理しますか?一度に50のURLを取得しますか?私はstart_requestsを見ることができますが、finish_requestsのようなコールバックはありません。私はstart_urlsリストを再度埋めることができますか?

ガイ

+0

これらの3000のURLは、異なるウェブサイトからのものですか?もしそうなら、あなたはそれぞれのスパイダーを別々にすることをお勧めします。 – warvariuc

答えて