【发布时间】:2018-07-18 01:31:21
【问题描述】:
我需要从网站上读取许多页面并使用正则表达式提取所有具有“活动”类的链接。 此标记可以在 HREF 值之前或之后具有类 attr。
我的代码是:
try:
p = requests.get(url, timeout=4.0)
except:
p = None
if p and p.content and p.status_code < 400:
canonical_url = re.search('<a class="active" href="(.*)?"', p.content, flags=re.MULTILINE|re.IGNORECASE|re.DOTALL|re.UNICODE)
但是使用这个正则表达式,我只能在 HREF 之前而不是之后捕获类活动的链接。 谢谢。
【问题讨论】:
-
看起来像python,你应该标记这个python。另外,不要使用正则表达式。 H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ 使用 BeautifulSoup。
-
感谢您的建议,但我需要使用正则表达式。
-
有什么原因吗?另外,将
(.*)?更改为([^"]*) -
试图了解您为什么需要使用正则表达式,请您给我们更多的背景信息。
-
我使用了 BS4,但我的老板让我使用正则表达式,因为 BS4 是提取简单链接的过度杀伤力。 :)