Python BeautifulSoup:查找td width

2024-10-01 02:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有许多表,每个表都有表数据标记,如下所示:

<td width="563" valign="top" bgcolor="#FFFF99" class="text">
...
<td width="12" bgcolor="#FFFF99" class="lettnav">
<td bgcolor="#FFFF99" class="lettnav">

目标是找到值最大的<td>。为此,首先我想使用beautifulsoap获得宽度值(如果不是,只打印空字符串)。在

以下是我的代码片段,但到目前为止还不起作用:

^{pr2}$

有什么帮助吗?在


Tags: 数据字符串text标记目标宽度topwidth
2条回答

要找到宽度最大的td,可以在从find\u all调用返回的td列表中使用max,将键设置为key=lambda t: int(t["width"])

soup = BeautifulSoup(page, 'html.parser')
cells = soup.find_all("td", width=True)

mx_td = max(cells, key=lambda t: int(t["width"]))

t["width"]访问属性值,我们需要对结果调用int,否则值将被比较lexicographically,即{}将为真。在

在BeautifulSoup中,属性以dict表示法访问(有关更多信息,请参见https://www.crummy.com/software/BeautifulSoup/bs4/doc/#attributes)。在

使用width=aCell["width"]您的代码可以工作:

for aCell in cells:
    width=aCell["width"]
    print(width)

如果您只对max值感兴趣,您还可以省略for循环,而使用列表理解:

^{pr2}$

相关问题 更多 >