Python-使用beautifulsoup提取属性值
我试图在网页上的特定“输入”标签中提取单个“值”属性的内容。我使用以下代码:
import urllibf = urllib.urlopen("http://58.68.130.147")
s = f.read()
f.close()
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(s)
inputTag = soup.findAll(attrs={"name" : "stainfo"})
output = inputTag['value']
print str(output)
我收到TypeError:列表索引必须是整数,而不是str
即使从Beautifulsoup文档中我了解到字符串在这里也不应该是一个问题…但是我没有专家,我可能会误解了。
回答:
.findAll()
返回所有找到的元素的列表,因此:
inputTag = soup.findAll(attrs={"name" : "stainfo"})
inputTag
是一个列表(可能仅包含一个元素)。根据你的确切要求,你应该执行以下操作:
output = inputTag[0]['value']
或使用.find()
仅返回一个(第一个)找到的元素的方法:
inputTag = soup.find(attrs={"name": "stainfo"}) output = inputTag['value']
以上是 Python-使用beautifulsoup提取属性值 的全部内容, 来源链接: utcz.com/qa/432163.html