python - 如何删除链接,除非它具有特定内容
问题描述
我正在删除我文件的所有链接,但是当内容是:“(VETADO)”时,我不想删除。
一段网页:
<a href="http://www.plan.com.br/ccivil_03.htm">(VETADO)</a>
<a href="http://www.plan.com.br/ccivil_04.htm">(Incluído em 2009).</a>
在这种情况下,我想保留第一个的内容a
并删除第二个。
那是我的代码:
for tag in soup.findAll():
if tag.name in ['a', 'strike']:
tag.decompose()
allp = soup.findAll('p')
for p in allp:
nonBreakSpace = u'\xa0'
result = p.text.replace('\n', '').replace(nonBreakSpace, '')
print(result)
预期的结果:
(VETADO)
解决方案
您基本上可以使用text
属性和过滤器一次性完成.decompose()
:
In [1]: from bs4 import BeautifulSoup
In [2]: data = """<div>
<a href="http://www.plan.com.br/ccivil_03.htm">(VETADO)</a>
<a href="http://www.plan.com.br/ccivil_04.htm">(Incluído em 2009).</a>
</div>"""
In [3]: soup = BeautifulSoup(data, "html.parser")
In [4]: for a in soup.find_all("a", text=lambda text: text and "VETADO" in text):
a.decompose()
In [4]: soup.prettify()
<div>
<a href="http://www.plan.com.br/ccivil_04.htm">
(Incluído em 2009).
</a>
</div>
推荐阅读
- excel - 生成排列
- java - JavaFX 不会通过 stop() 方法停止应用程序
- python - 命令“python setup.py egg_info”失败,setup.py 未找到
- r - 具有数百万行的 SparkR Shiny renderDT()
- reactjs - 使用 create-react-app 的多个入口点
- android - 删除共享首选项也会删除默认图像视图
- botframework - 什么是正确的 BlobStorageService 配置格式?
- scala - 根据列中的值复制 Spark 数据框中的行
- python - 在 post 请求 python 中传递 json 以提交文件
- excel - Power BI 给没有 Power BI 的用户