使用BeautifulSoup提取包含字符串的表

时间:2013-06-02 05:16:57

标签: python html-parsing web-scraping beautifulsoup

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

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

2 个答案:

答案 0 :(得分:2)

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

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方法对于您的案例在找到包含相关字符串的元素后导航到正确的元素似乎也很有用。

答案 1 :(得分:0)

只做以下事情:

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

在我看来,所有基于统计的表都是设置宽度为585px。虽然这可能会改变,但它似乎是一个很好的起点。

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