我有一组 html 文件。我需要从“ul/li”段中删除链接,但其他链接和“ul/li”段必须保留。
我为此使用了 BS。
<p>
<a href="link" class="story body__link">link</a>
</p>
<ul class="story-body__unordered-list">
<li class="story-body__list-item">
<a href="link" class="story-body__link">link</a>
</li>
</ul>
<ul class="story-body__unordered-list">
<li class="story-body__list-item">
text
</li>
</ul>
我正在使用 python BS 来完成此任务。我设法通过这段代码完成这项任务,但它并不完美。我的问题是有没有更好、更干净的解决方案?
soup = BeautifulSoup(page, 'html.parser')
for i in soup.find_all('li', attrs={"story-body__list-item"}):
x = str(i.next_element)
if x.startswith( '<a' ) == True:
i.decompose()
最佳答案
像这样尝试一下,看看它是否适用于您的实际代码:
for link in soup.select("li.story-body__list-item > a"):
link.parent.decompose()
或者:
for link.parent in soup.select("li.story-body__list-item > a"):
link.decompose()
关于Python 美丽汤 : Removing specific element in element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59642645/