【问题标题】:Can you find the parent of the soup in BeautifulSoup你能在 BeautifulSoup 中找到汤的父代吗
【发布时间】:2021-03-03 20:33:00
【问题描述】:

我正在用 python 处理美丽的汤,我正在做一个检索我的学校时间表的项目。这是一个写得很糟糕的网站。它是一个 HTML 表格,每个单元格都包含另一个表格。在那个表里面,有数据。没有 id 或类。

我设法获得了我需要的所有表的列表,但是我无法访问的表的父级中有一个值(行跨度),但我仍然需要。

当您确实拥有完整的源代码时,是否可以查看汤的父母?

页面:

<td colspan="12" rowspan="4" align="center">
    <table>
        <tr><td>*data is here*</td></tr>

(我的汤对象是由 HTML 组成的,从桌子开始)

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    您可以通过调用.parent 属性找到标签父级。

    ...
    print(soup.find('table').parent)
    

    编辑:尝试使用find_previous() 方法:

    >>> html = """
    ... <td colspan="12" rowspan="4" align="center">
    ...     <table>
    ...         <tr><td>*data is here*</td></tr>
    ... """
    >>> soup = BeautifulSoup(html, "html.parser")
    >>>
    >>> for tag in soup.find_all("table"):
    ...     print(tag.find_previous("td")["rowspan"])
    ...
    4
    >>>
    

    【讨论】:

    • 基本上我试图从数据中创建一个简单的restfulAPI。我得到了每个单元格的列表,并制作了几个函数来删除不必要的或空的单元格,并检索所需的信息。但是现在我需要行跨度,因为当行跨度超过 2 时,单元格会变得疯狂
    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 2017-09-28
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多