BeautifulSoup:TypeError:' unicode'对象不可调用

时间:2015-06-15 11:55:45

标签: python beautifulsoup

这是我的代码:

v_card = soup.find('div', {'class':'col subgroup vcard'})
if v_card is not None :
    print v_card.prettify()
    infos = v_card.findAll('li')
    print infos[0].text()

这是输出:

<div class="col subgroup vcard">
<ul>
 <li>
  infos I need to get
 </li>
 <li>
  infos I need to get
 </li>
 <li>
 </li>
</ul>
</div>

Traceback (most recent call last):
  File "./xxxx.py", line 43, in <module>
    print infos[0].text()
TypeError: 'unicode' object is not callable

请注意,如果我删除.text()方法,则会成功打印<li>标记及其内容。

这很奇怪,因为使用其他元素我使用.text()没有问题,我没有得到它,有什么解释吗?

1 个答案:

答案 0 :(得分:4)

.text是一个属性,返回节点的包含文本。它不可调用,只需直接使用即可:

print infos[0].text

你可能已经对这里的Element.get_text() method感到困惑;访问.text属性与调用.get_text()时没有任何参数基本相同。