使用 BeautifulSoup 访问下一个同级
  • 元素
  • 2023-11-26

    我对使用 Python/BeautifulSoup 进行网络解析完全陌生。我有一个 HTML,其(部分)代码如下:

    <div id="pages">
        <ul>
            <li class="active"><a href="example.com">Example</a></li>
            <li><a href="example.com">Example</a></li>
            <li><a href="example1.com">Example 1</a></li>
            <li><a href="example2.com">Example 2</a></li>
        </ul>
    </div>
    

    我必须去参观每个链接(基本上每个<li>元素),直到没有更多的元素为止<li>存在标签。每次点击链接时,都会显示相应的<li>元素的类别为“活动”。我的代码是:

    from bs4 import BeautifulSoup
    import urllib2
    import re
    
    landingPage = urllib2.urlopen('somepage.com').read()
    soup = BeautifulSoup(landingPage)
    
    pageList = soup.find("div", {"id": "pages"})
    
    page = pageList.find("li", {"class": "active"})
    

    这段代码给了我第一个<li>列表中的项目。我的逻辑是我不断检查是否next_sibling不是无。如果不是 None,我将创建一个 HTTP 请求href的属性<a>那个兄弟姐妹中的标签<li>。这将使我进入下一页,依此类推,直到没有更多的页面。

    但我不知道如何获得next_sibling of the page上面给出的变量。是吗page.next_sibling.get("href")或类似的东西?我查看了文档,但不知何故找不到它。有人可以帮忙吗?


    Use find_next_sibling()并明确您想要查找哪个同级元素:

    next_li_element = page.find_next_sibling("li")
    

    next_li_element会成为None if the page对应于最后一个活动的li:

    if next_li_element is None:
        # no more pages to go
    
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

    使用 BeautifulSoup 访问下一个同级
  • 元素 的相关文章
    • SQL Alchemy 中的 NULL 安全不等式比较?

      目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
    • 删除 IE9 边缘周围的 2px 灰色边框

      我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
    • 如何通过单击链接来更改 div 的内容?

      这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
    • __del__ 真的是析构函数吗?

      我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
    • 如何使用装饰器禁用某些功能的中间件?

      我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
    • python pandas 中的双端队列

      我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
    • 在pyyaml中表示具有相同基类的不同类的实例

      我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
    • python 集合可以包含的值的数量是否有限制?

      我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
    • Python:字符串不会转换为浮点数[重复]

      这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
    • 具有 100% 高度行和 Internet Explorer 9 的表格

      我有以下示例 div style height 150px background color AAAAFF div
    • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

      这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
    • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

      这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
    • HTTPS 代理不适用于 Python 的 requests 模块

      我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
    • ExpectedFailure 被计为错误而不是通过

      我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
    • Python:尝试检查有效的电话号码

      我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
    • 循环中断打破tqdm

      下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
    • 如何将 PIL 图像转换为 NumPy 数组?

      如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
    • 对输入求 Keras 模型的导数返回全零

      所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
    • 如何使用google colab在jupyter笔记本中显示GIF?

      我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
    • 循环标记时出现“ValueError:无法识别的标记样式 -d”

      我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代

    随机推荐