python使用正则匹配HTML,如何过滤掉不要的数据?

当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)