使用 BeautifulSoup 提取属性值
尝试使用以下方式提取“input”标记中特定“value”属性的值时BeautifulSoup,可能会出现错误消息“TypeError:列表索引必须是整数,而不是str”。该问题源于对 BeautifulSoup 的 .find_all() 方法如何操作的误解。
理解 .find_all()
.find_all() 搜索所有出现的标签匹配指定的属性并返回元素列表。这意味着当提取具有特定名称的输入标记的属性时,操作将返回属于该列表成员的元素,而不是属性值本身。
更正代码
要纠正错误,有两种方法:
input_tag = soup.find_all(attrs={"name": "stainfo"}) output = input_tag[0]['value']
input_tag = soup.find(attrs={"name": "stainfo"}) output = input_tag['value']
通过实现这些修改中的任何一个,代码将正确提取所需的属性值,消除“TypeError”异常。
以上是使用 BeautifulSoup 提取属性值时如何避免'TypeError:列表索引必须是整数,而不是 str”?的详细内容。更多信息请关注PHP中文网其他相关文章!