BeautifulSoup4获取“li a”,li内没有文本

2024-09-22 20:38:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助从一个网站获得一些特定的锚。网站有这样的结构

<li> This has a link <a href="#">1st link</a> </li> <li> <a href="#">2nd link</a> </li> <li> This also has a link <a href="#">1st link</a> </li>

我只想获取在deli中没有文本的锚。 使用BeautifulSoup最简单的方法是什么


Tags: 方法文本网站linklithis结构also
1条回答
网友
1楼 · 发布于 2024-09-22 20:38:31

您可以分析soup.contents的元素以确定是否只存在soup对象:

from bs4 import BeautifulSoup as soup
d = soup(s, 'html.parser')
results = [i for i in d.find_all('li') if all(not isinstance(c, str) or c == '\n' for c in i.contents)]

输出:

[<li>
  <a href="#">2nd link</a>
</li>]

相关问题 更多 >