使用Beautifulsoup,我想找<a>
未被<p>
括起来并用<p>
括起来,但我不知道怎么做
<p><a href="example1.com">example1.com</a></p>
<p><a href="example2.com">example2.com</a></p>
<a href="example3.com">example3.com</a>
<p><a href="example3.com">example3.com</a></p>
我想改变上面的html
<p><a href="example1.com">example1.com</a></p>
<p><a href="example2.com">example2.com</a></p>
<p><a href="example3.com">example3.com</a></p> <-here
<p><a href="example3.com">example3.com</a></p>
答案 0 :(得分:2)
您需要使用css selector和wrap
使用p
标记
In [2]: from bs4 import BeautifulSoup as BS
In [3]: html = """<p><a href="example1.com">example1.com</a></p>
...: <p><a href="example2.com">example2.com</a></p>
...: <a href="example3.com">example3.com</a>
...: <p><a href="example3.com">example3.com</a></p>"""
In [4]: soup = BS(html, "html.parser")
In [5]: for a in soup.select("p ~ a"):
...: a.wrap(soup.new_tag("p"))
...:
In [6]: soup
Out[6]:
<p><a href="example1.com">example1.com</a></p>
<p><a href="example2.com">example2.com</a></p>
<p><a href="example3.com">example3.com</a></p>
<p><a href="example3.com">example3.com</a></p>
答案 1 :(得分:1)
wp_insert_post()
答案 2 :(得分:0)
试试这个:
from bs4 import BeautifulSoup
data = """
<p><a href="example1.com">example1.com</a></p>
<p><a href="example2.com">example2.com</a></p>
<a href="example3.com">example3.com</a>
<p><a href="example3.com">example3.com</a></p>
"""
soup = BeautifulSoup(data, 'html.parser')
for a in soup('a'): # shortcut for soup.find_all('p')
if a.parent.name != 'p' :
a.wrap(soup.new_tag("p"))
print soup