import re
def test():
str = """
<html>
<body>
<div class="test">
<ul>
<li><img src="https://699pic.com/goods.png" alt="ceshi"></li>
<li><img src="https://699pic.com/order.png" alt="ceshi"></li>
<li><img src="https://699pic.com/boy.png" alt="ceshi"></li>
<li><img src="https://699pic.com/food.png" alt="ceshi"></li>
<li><img src="https://699pic.com/open.png" alt="ceshi"></li>
</ul>
</div>
<div class="ji">
<ul>
li><img src="https://699pic.com/test.png" alt="test"></li>
</ul>
</div>
</body>
</html>
"""
#句点并不能匹配换行符,需要使用标记--re.DOTALL
pattern = re.compile(r'<div class="test">.*?<ul>(.*?)</ul>.*?</div>', re.DOTALL)
result = pattern.search(str)
if result:
part = result.group()
pattern1 = re.compile('<img src="(.*?)"')
res = pattern1.findall(part)
print(res)
if __name__ == "__main__":
test()
输出结果