Beautiful Soup 为特定的 div 找到孩子
Posted
技术标签:
【中文标题】Beautiful Soup 为特定的 div 找到孩子【英文标题】:Beautiful Soup find children for particular div 【发布时间】:2012-10-23 12:24:12 【问题描述】:我正在尝试使用 Python->Beautiful Soup:
解析一个看起来像这样的网页我正在尝试提取突出显示的 td div 的内容。目前我可以通过
alltd = soup.findAll('td')
for td in alltd:
print td
但我试图缩小范围以搜索“tablebox”类中的 tds,它仍然可能返回 30+,但比 300+ 更易于管理。
如何提取上图中高亮的td内容?
【问题讨论】:
【参考方案1】:知道 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”。
【讨论】:
在父循环中,标签是'div'元素而不是汤元素,所以我认为它会出错,不是吗?在“div”元素中,它没有名为“find_all”的方法以上是关于Beautiful Soup 为特定的 div 找到孩子的主要内容,如果未能解决你的问题,请参考以下文章
Beautiful Soup 4 find_all 找不到 Beautiful Soup 3 找到的链接