要提取两个标签之间的所有内容,可以使用Beautiful Soup库。
以下是一个示例代码:
from bs4 import BeautifulSoup
# 假设有以下HTML代码
html = '''
Beautiful Soup: 提取两个标签之间的所有内容
标题1
这是第一个段落。
标题2
这是第二个段落。
标题3
这是第三个段落。
'''
# 创建Beautiful Soup对象
soup = BeautifulSoup(html, 'html.parser')
# 找到两个标签之间的内容
h1 = soup.find('h1') # 找到第一个标签
h2 = soup.find('h2') # 找到第二个标签
# 提取两个标签之间的所有内容
contents = []
current_tag = h1.next_sibling # 获取第一个标签的下一个兄弟节点
while current_tag != h2:
if current_tag.name is not None: # 如果节点是一个标签
contents.append(str(current_tag)) # 将标签转换为字符串并添加到列表中
current_tag = current_tag.next_sibling # 获取下一个兄弟节点
# 输出提取的内容
print(''.join(contents))
这段代码中,我们首先使用Beautiful Soup库解析HTML代码,然后使用find
方法找到第一个标签和第二个标签。接下来,我们使用next_sibling
方法获取第一个标签的下一个兄弟节点,并通过循环遍历直到找到第二个标签为止,将标签转换为字符串并添加到一个列表中。最后,我们使用join
方法将列表中的所有字符串连接起来,并输出提取的内容。