line = line.strip()TypeError:' NoneType'对象不可调用

时间:2016-03-01 13:33:59

标签: python object typeerror callable nonetype

我正在尝试使用beautifulsoup从html中找到列表中的所有数字:

import urllib
from BeautifulSoup import *
import re

line = None
url = raw_input('Enter - ')
html = urllib.urlopen(url).read()

soup = BeautifulSoup(html)

# Retrieve all of the anchor tags
tags = soup('span')
for line in tags:
    line = line.strip()
    numlist = re.findall('[0-9]+' , tags)
print numlist`

我得到追溯:

  

回溯(最近一次调用最后一次):文件" C:\ Documents and   设置\ mea388 \ Desktop \ PythonSchool \ new 12.py",第14行,in       line = line.strip()TypeError:' NoneType'对象不可调用

我无法理解为什么我会得到回溯。

1 个答案:

答案 0 :(得分:1)

那是因为你试图在美丽的汤中在标签类上运行strip。

将第14行更改为:

 line = line.string.strip()

但请注意,当您搜索的标记包含多个子元素时,这仍然可以为None。见link to string method on doco for beautiful soup