当html中兄弟节点存在多个相同标签时,怎么匹配想要的其中一个
假如要从下面这一个html,使用正则只取出百度以及其对应的地址
<html>
<head>
<meta charset="UTF-8">
<title>我的网页</title>
</head>
<body>
<h3 id="hid">我的常用链接</h3>
<ul>
<li class=""><a href="http://www.baidu.com">百度</a></li>
<li class=""><a href="http://www.jd.com">京东</a></li>
<li class="item-2"><a href="http://www.sohu.com">搜狐</a></li>
<li class="item-3"><a href="http://www.sina.com">新浪</a></li>
<li class="item-4"><a href="http://www.taobao.com">淘宝</a></li>
</ul>
</body>
</html>
我使用下面这个方法把百度和京东都取出来了
a = open("./my.html", "r", encoding="utf-8")
content = a.read()
data = '<li class=""><a href=(.*?)>(.*?)</a></li>'
d_list = re.findall(data, content)
print(d_list)
data = '<li class=""><a href=(.*?)>(.*?)</a></li>'
data= '<li class=""><a href=(.{18,})>(.*?)</a></li>'
a标签里面的内容不要匹配就可以了
a = open("./my.html", "r", encoding="utf-8")
content = a.read()
data = '<li class=""><a href=(.*?)>百度</a></li>'
d_list = re.findall(data, content)
print(d_list)