在 Beautiful Soup 中,标签或字符串的 next_sibling
属性返回同一父级下的下一个标签或字符串。
例子
基本用法
考虑以下 HTML 文档:
my_html = "<p><b>Alex</b><i>is great</i></p>"
soup = BeautifulSoup(my_html)
让我们获取 <b>Alex</b>
的 next_sibling
:
b_alex = soup.find("b")
b_alex.next_sibling
<i>is great</i>
这告诉我们 <b>Alex</b>
的下一个节点是 <i>is great</i>
,我们知道这是真的,因为 <i>is great</i>
是同一 p
标签下的下一个元素。
如果下一个节点不存在,则返回None
:
b_alex = soup.find("b")
b_alex.next_sibling.next_sibling
None
意外行为
考虑以下 HTML 文档:
my_html = """
<div>
<p>Alex</p>
<p>Bob</p>
</div>
"""
soup = BeautifulSoup(my_html)
让我们获取 <p>Alex</p>
的 next_sibling
:
p_alex = soup.find("p")
p_alex.next_sibling
'\n'
对于那些期望看到 <p>Bob</p>
的人来说,结果可能会令人惊讶。出现这样的结果是因为 <p>Alex</p>
和 <p>Bob</p>
之间存在换行符 \n
。那么,要联系 Bob,您需要调用 next_sibling
两次:
p_alex = soup.find("p")
p_alex.next_sibling.next_sibling
<p>Bob</p>
如果您只想访问下一个同级元素,那么更好的选择是调用 find_next_sibling()
方法:
p_alex = soup.find("p")
p_alex.find_next_sibling()
<p>Bob</p>
相关用法
- Python BeautifulSoup next_siblings属性用法及代码示例
- Python BeautifulSoup next_element属性用法及代码示例
- Python BeautifulSoup next_elements属性用法及代码示例
- Python next方法用法及代码示例
- Python next()用法及代码示例
- Python networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path用法及代码示例
- Python networkx.classes.function.edge_subgraph用法及代码示例
- Python networkx.algorithms.tree.mst.maximum_spanning_edges用法及代码示例
- Python networkx.algorithms.bipartite.basic.color用法及代码示例
- Python networkx.algorithms.bipartite.cluster.latapy_clustering用法及代码示例
- Python networkx.readwrite.json_graph.adjacency_data用法及代码示例
- Python networkx.algorithms.bipartite.edgelist.generate_edgelist用法及代码示例
- Python networkx.Graph.neighbors用法及代码示例
- Python networkx.DiGraph.__contains__用法及代码示例
- Python networkx.drawing.nx_pylab.draw_random用法及代码示例
- Python networkx.convert_matrix.to_pandas_edgelist用法及代码示例
- Python networkx.DiGraph.__init__用法及代码示例
- Python networkx.algorithms.cycles.recursive_simple_cycles用法及代码示例
- Python networkx.drawing.layout.random_layout用法及代码示例
- Python networkx.algorithms.link_prediction.within_inter_cluster用法及代码示例
- Python networkx.algorithms.non_randomness.non_randomness用法及代码示例
- Python networkx.algorithms.traversal.depth_first_search.dfs_tree用法及代码示例
- Python networkx.MultiGraph.clear用法及代码示例
- Python networkx.algorithms.operators.product.cartesian_product用法及代码示例
- Python networkx.algorithms.traversal.depth_first_search.dfs_labeled_edges用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 BeautifulSoup | next_sibling property。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。