Python 标识下一个循环周期元素名称

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>

我想用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>

</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同级元素。您甚至可以使其递归以查找第一个非空元素。还请检查欢迎使用堆栈溢出!虽然此代码可能会回答该问题,但提供有关此代码为什么和/或如何回答该问题的附加上下文可提高其长期价值。不鼓励只使用代码的答案。