Python-使用beautifulsoup提取属性值

我试图在网页上的特定“输入”标签中提取单个“值”属性的内容。我使用以下代码:

import urllib

f = 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

回到顶部