OffsiteMiddleware からカスタム SpiderMiddleware を作成しました。元のクラスからの単純なコピーと貼り付け、おそらくより良い方法が存在します。
フィルタリングされたオフサイト ドメインを収集します。私のパイプラインは機能します。
しかし、アイテムをパイプラインに戻す方法がわかりません。
ご協力いただきありがとうございます。
def process_spider_output(self, response, result, spider):
items = []
for x in result:
if isinstance(x, Request):
if x.dont_filter or self.should_follow(x, spider):
yield x
else:
domain = urlparse_cached(x).hostname
if domain and domain not in self.domains_seen[spider]:
self.domains_seen[spider].add(domain)
# ***My items ===> items.append(OutboundsLinks(url = domain))***
else:
yield x