python - 在 Beautifulsoup 中提取值(value)

标签 python beautifulsoup

我有以下代码:

f = open(path, 'r')
html = f.read() # no parameters => reads to eof and returns string

soup = BeautifulSoup(html)
schoolname = soup.findAll(attrs={'id':'ctl00_ContentPlaceHolder1_SchoolProfileUserControl_SchoolHeaderLabel'})
print schoolname

给出:

[<span id="ctl00_ContentPlaceHolder1_SchoolProfileUserControl_SchoolHeaderLabel">A B Paterson College, Arundel, QLD</span>]

当我尝试使用 schoolname['value'] 访问该值(即“A B Paterson College, Arundel, QLD”)时,出现以下错误:

print schoolname['value'] TypeError: list indices must be integers, not str

为了获得这个值我做错了什么?

最佳答案

您可以使用contents沿着树向下移动:

>>> for x in schoolname:
>>>    print x.contents
[u'A B Paterson College, Arundel, QLD']    

请注意,内容不一定是字符串 - 一般来说,它也可以是更多标签或字符串和标签的混合。

关于python - 在 Beautifulsoup 中提取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2616659/

相关文章:

Python 列表说明 : Assigning values directly is not possible

python - 如何删除 BeautifulSoup 中所有不同的脚本标签?

python - 尝试抓取网站页面上的所有鞋子,但始终返回“无”

类方法的Python单元测试

python - 自定义添加方法在字符串插值期间失败

python - OpenCV:带降噪的对象跟踪

python - urlfetch URL 的最大长度未记录?

python - 如何使用 Beautiful Soup 查找和更改标签之外的文本?

python - BeautifulSoup Python 正在剥离我的 HTML 注释

python - 使用 lxml 生成器进行非递归查找