Pwn*_*nna 3 python beautifulsoup
我目前正在使用 BeautifulSoup 重新格式化一些 HTML 页面,但遇到了一些问题。
我的问题是原始 HTML 具有以下内容:
<li><p>stff</p></li>
Run Code Online (Sandbox Code Playgroud)
和
<li><div><p>Stuff</p></div></li>
Run Code Online (Sandbox Code Playgroud)
也
<li><div><p><strong>stff</strong></p></div><li>
Run Code Online (Sandbox Code Playgroud)
使用 BeautifulSoup,我希望消除 div 和 p 标签(如果存在),但保留强标签。
我正在浏览漂亮的汤文档,但找不到任何文档。想法?
谢谢。
这个问题可能refered旧版本BeautifulSoup的,因为与BS4,你可以简单地使用展开功能:
s = BeautifulSoup('<li><div><p><strong>stff</strong></p></div><li>')
s.div.unwrap()
>> <div></div>
s.p.unwrap()
>> <p></p>
s
>> <html><body><li><strong>stff</strong></li><li></li></body></html>
Run Code Online (Sandbox Code Playgroud)
您可以使用replaceWith. 您必须复制要用作替换的元素,然后将其作为参数提供给replaceWith。有关如何执行此操作的文档replaceWith非常清楚。
我看到了这个简单问题的很多答案,我也来这里看看一些有用的东西,但不幸的是我没有得到我想要的东西,然后经过几次尝试我找到了这个答案的一个简单的解决方案,这里是
soup = BeautifulSoup(htmlData, "html.parser")
h2_headers = soup.find_all("h2")
for header in h2_headers:
header.name = "h1" # replaces h2 tag with h1
Run Code Online (Sandbox Code Playgroud)
所有 h2 标签都转换为 h1。您只需更改名称即可转换任何标签。