41

我试图用 Python->Beautiful Soup 解析一个看起来像这样的网页:在此处输入图像描述

我正在尝试提取突出显示的 td div 的内容。目前我可以通过

alltd = soup.findAll('td')

   
for td in alltd:
    print td

但我试图缩小范围以搜索“tablebox”类中的 tds,它仍然可能返回 30+,但比 300+ 更易于管理。

如何提取上图中突出显示的 td 的内容?

4

1 回答 1

77

知道 BeautifulSoup 在一个元素中找到的任何元素仍然具有与该父元素相同的类型是很有用的——也就是说,可以调用各种方法。

因此,对于您的示例来说,这有点工作代码:

soup = BeautifulSoup(html)
divTag = soup.find_all("div", {"class": "tablebox"})

for tag in divTag:
    tdTags = tag.find_all("td", {"class": "align-right"})
    for tag in tdTags:
        print tag.text

td这将打印所有具有“align-right”类的标签的所有文本,这些标签的父div类具有“tablebox”类。

于 2012-11-02T19:58:47.480 回答