0

特定の URL を解析するために、scrapy で SgmlLinkExtractor 機能を使用しています。

動的 URL をクロールするために start_requests 関数をオーバーライドします。

これは次のようになります。

start_requests(self): ..... yield Requests(url.strip(), callbackA)

コールバック A は現在何もしません。

SgmlLinkExtractor の process_value も実装しましたが、呼び出されませんでした。

これは私が使用しているルールです:

rules = [Rule(SgmlLinkExtractor(allow=()), callback=callbackB, follow=True),]

この場合も callbackB は呼び出されませんでした。

4

1 に答える 1

0

コールバックがスパイダーで宣言されている場合、それらはグローバル スコープを持たず、次のようにクラスにスコープされているものとして参照する必要がありますself.

rules = [
  Rule(SgmlLinkExtractor(), callback=self.callbackB, follow=True),
]
于 2012-07-24T14:32:37.063 に答える