我正在编写一个Python3程序,如下所示。我想捕获所有href
属性,以便捕获双引号之间出现的任何数据。例如,< a href="...">< /a>
以下代码适用于此任务,但在查看来自多个站点的数据后,如果&#34;。&#34;那么仅在正则表达式中捕获数据会很好。是被捕集团的一部分。
因此,例如,如果返回的数据是: http://money.cnn.com,/ health,/ asia
我只想看:http://money.cnn.com
我尝试过各种各样的正则表达式断言,但问题是我想要包含句点以及将其用作过滤器。
我也意识到我可以使用后续的列表过滤器或列表理解过滤器来实现这一点,但我希望使用正则表达式来实现它。
这个正则表达似乎有效:
href=["\'](?=[^\.]*[\.])(.*?)["\']
但不在下面的Python代码中。 (另见:https://ibb.co/hQwjPm)
import codecs
import re
response = urllib.request.urlopen('http://www.cnn.com').read()
hrefs = re.findall(r'href=["\'](.*?)["\']', codecs.decode(response))