【问题标题】:Extracting tables containing a string with BeautifulSoup使用 BeautifulSoup 提取包含字符串的表
【发布时间】:2013-05-28 14:47:13
【问题描述】:

我正在尝试使用 BeautifulSoup 解析一个网站,该网站包含表内表中的许多表等。具体来说,我正在查看websites of this form。我想提取相关表格,例如那些匹配统计信息,但似乎无法找到提取相关表格的方法,因为它们不包含诸如特定类等显着特征。

有没有办法提取包含某些字符串的表?

【问题讨论】:

标签: python html-parsing web-scraping beautifulsoup


【解决方案1】:

可以提取包含字符串的表,例如:

for tag in soup.find_all(text=re.compile('Sydney Match Statistics')):
        print tag.findParent('table').findParent('table')

这会找到包含文本“Sydney Match Statistics”的元素,然后找到包含它的table,然后找到另一个包含它的table

.parent.next_sibling 方法似乎也有助于您在找到包含相关字符串的元素后导航到正确的元素。

【讨论】:

    【解决方案2】:

    不如做这样的事情:

    soup.findAll("table", {"width": "585"})
    

    在我看来,所有基于统计的表格的宽度都是 585 像素。虽然这可能会改变,但它似乎是一个不错的起点。

    据我所知,没有办法搜索包含字符串的元素。但是,没有什么可以阻止您使用 findAll('table') 然后迭代每个表以查找您的字符串。找到后,处理表格。

    【讨论】:

    • 啊,是的,谢谢!我实际上尝试了类似的东西,但遇到了麻烦。
    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多