我有以下HTML数据。我需要使用BeautifulSoup4:
从中获得“2”<td rowspan="2" style="text-align: center; vertical-align: middle;">
<small>3</small>
</td>
我试过了:
k.find('rowspan')['style']
产生了例外:
回溯(最近一次调用最后一次):TypeError中的文件“”,第1行:列表索引必须是整数,而不是str
是否可以使用BS4进行?或者说我使用不同的库来直接提取CSS?
答案 0 :(得分:1)
您为什么使用find("rowspan")
?您没有搜索<rowspan>
代码。
find
method在传递单个字符串参数时,会根据标记名称搜索标记。
你应该使用的是这样的,这意味着,“找到属性值为<td>
的第一个rowspan="2"
标记,并返回其style
属性的值”:< / p>
k.find('td', rowspan="2")['style']
请参阅文档的"Kinds of filters"部分,了解指定要搜索的标记的各种方法。
答案 1 :(得分:0)
试试这个:
from bs4 import BeautifulSoup
soup = BeautifulSoup('<td rowspan="2" style="text-align: center; vertical-align: middle;"><small>3</small></td>', 'html.parser')
print(soup.td['rowspan'])