【发布时间】:2026-01-08 00:20:03
【问题描述】:
这是我的 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 天了,尝试了你能想象到的每一种排列方式,但结果总是一样。
我要么错过了显而易见的事情,要么这并不简单。
如果无法通过这种方式,任何关于新路线的建议都非常感谢。
【问题讨论】:
-
" 和 "return item" 被触发,其余被丢弃。你说的休息是什么意思?其余的项目?或者循环只是在那一点中断并停止?
-
如果我如上所述设置了 3 个正则表达式,并且我已经知道其中一个存在于要抓取的网页中,则只返回一个匹配项和一个抓取数据的 URL。我只是不知道为什么会这样。我相信它会持续抓取,但只是将它们分配为“丢弃”。这很奇怪。
标签: python scrapy scrapy-pipeline