Python 标识下一个循环周期元素名称
我想用BeautifulSoup循环一个html元素列表,但对于每个元素,我还想检查树的下一个元素的Python 标识下一个循环周期元素名称,python,beautifulsoup,Python,Beautifulsoup,我想用BeautifulSoup循环一个html元素列表,但对于每个元素,我还想检查树的下一个元素的名称 from bs4 import BeautifulSoup html_doc = """ <!DOCTYPE html> <html> <body> <div id="main"> <p>1</p> <p>2</p> <b>3</b> </div>
名称
from bs4 import BeautifulSoup
html_doc = """
<!DOCTYPE html>
<html>
<body>
<div id="main">
<p>1</p>
<p>2</p>
<b>3</b>
</div>
</body>
</html>
"""
soup = BeautifulSoup(html_doc)
for p in soup.find(id="main").find_all("p"):
print p.get_text()
if p.next_sibling.name == 'p':
print "TRUE"
从bs4导入美化组
html_doc=“”
一,
二,
3.
"""
汤=美汤(html\U文档)
对于汤中的p.find(id=“main”).find_all(“p”):
打印p.get_text()
如果p.next_sibling.name==“p”:
打印“真”
当然这是行不通的,循环中的下一个元素是空元素。是否可以控制原始树元素的下一个名称?来自bs4导入美化组
from bs4 import BeautifulSoup
html = """
<div id="main">
<p>1</p>
<p>2</p>
<b>3</b>
</div>
"""
soup = BeautifulSoup(html, 'html.parser')
elements = soup.find(id='main').find_all('p')
for p in elements:
print p.text,
try:
next_ = elements[elements.index(p) + 1]
print '(next tag is: %s)' % next_.name
except IndexError:
print "(this was the last element with tag 'p')"
html=”“”
一,
二,
3.
"""
soup=BeautifulSoup(html,'html.parser')
elements=soup.find(id='main')。find_all('p'))
对于元素中的p:
打印p.text,
尝试:
下一步=元素[元素索引(p)+1]
打印“(下一个标记是:%s)”%next\u.name
除索引器外:
print”(这是最后一个带有标记“p”的元素)
作为一种快速解决方法,您可以检查next\u同级元素是否为空元素,如果为空,则再次从中获取next\u同级元素。您甚至可以使其递归以查找第一个非空元素。还请检查欢迎使用堆栈溢出!虽然此代码可能会回答该问题,但提供有关此代码为什么和/或如何回答该问题的附加上下文可提高其长期价值。不鼓励只使用代码的答案。