これは私のScrapyカスタム正規表現パイプラインコードです:Scrapy正規表現のカスタムパイプライン
for p in item['code']:
for search_type, pattern in RegEx.regexp.iteritems():
s = re.findall(pattern, p)
if s:
return item
else:
raise DropItem
そして、これは私の正規表現のコードです:
class RegEx(object):
regexp = {
'email' : re.compile('liczba'), 'whatever' : re.compile(r'mit'), 'blu' : re.compile(r'houseLocked'),}
は、実際ちょうどデモの目的のためとして、正規表現をコンパイルされません。
これは機能しますが、一致が見つかると "返品アイテム"がトリガーされると、残りのアイテムは削除されます。
Scrapyパイプラインで繰り返し処理できますか?
私はこれを4日間行っていて、あなたが想像しているすべての順列を試しましたが、いつも同じ結果になりました。
私は明白でないか、これは簡単ではありません。
この方法では不可能な場合は、新しいルートの推奨事項は非常に高く評価されます。
』と」リターン項目:
はそれがちょうどメインループのDropItem
外を移動是正しますあなたは休息によって何を意味するのですか?残りのアイテム?またはループはちょうどその時点で壊れて停止しますか? – Granitosaurus私は3つの正規表現を上記のように設定し、それぞれが1つのWebページにスクラップされることが既に分かっている場合は、1つの一致が返され、1つのURLはスクラップされたデータです。なぜ私はこれが起こっているのか分かりません。私はそれが継続的に掻き分けていると信じていますが、単純にそれらを「落としたもの」として割り当てます。それは奇妙だ。 – Stuart