【发布时间】:2015-07-07 10:52:20
【问题描述】:
我是 Python 和 Regex 的新手,有点困惑。我想在网页标题中搜索三个不同的术语,如果标题与我想要打印出来的标题匹配(我使用的是scrapy,所以它会为每个项目打印它)。我不确定我们如何让它通过三个术语进行搜索?例如,如果标题有“Dresses|Wallets|Pumps”打印出来。
现在我只是打印标题中的第一个词
c_raw = response.xpath('//title').extract()
c_re = re.search('<title>(.*?) |.*?', c_raw[0])
c = c_re.group(1).lower()
我试过了
c_raw = response.xpath('//title').extract()
c_re = re.search('Dresses|Wallets|Pumps', c_raw[0])
c = c_re.group(0)
但有些 c 的打印没有。我也不确定c_raw[0] 在做什么? 0 有什么作用?
任何帮助将不胜感激!
编辑:虽然以下答案有所帮助 - 在 Dresses|Wallets|Pumps 周围添加括号也有效
【问题讨论】:
-
在正则表达式周围添加括号有帮助吗?喜欢
(Dresses|Wallets|Pumps) -
@rednaw 这实际上修复了它!
-
在解析网页时,您应该尝试使用像 BeautifulSoup 这样的 XML 解析器,而不是正则表达式。