TypeError: list indices must be integers or slices, not str报错时的解决方法

这个是在使用BeautifulSoup的时候遇到的问题

原因

find()和find_all(),
select()和select_all()获得的数据类型有差异。
当使用

find()
select_one()

获得的数据类型是标签
其类型表现为
<class 'bs4.element.Tag'>
因此上述不带all的函数可以通过tag['class']取值
当使用

find_all()
select()

获得的是组标签(定义为组,和其内容的数量无关)
其类型表现为

#find_all()的返回值类型
<class 'bs4.element.ResultSet'>
#select()的返回值类型
<class 'list'>

由此取值需要标注取值位置后再调用
tag[0]['class']

解决方法

select再读取元素

赞(1)
未经允许不得转载:卓克小站 » TypeError: list indices must be integers or slices, not str报错时的解决方法