for循环在python中显示错误(不支持的操作数错误)

时间:2014-06-18 08:55:12

标签: python beautifulsoup

当我尝试解析for循环时,我收到此错误

pages=soup.find('span',{'class':'pagnDisabled'})
if pages==None:
    print 'None'
elif pages!=None:
    for i in range(2, pages + 1):
       print i

我收到此错误

TypeError: unsupported operand type(s) for +: 'Tag' and 'int'

2 个答案:

答案 0 :(得分:1)

soup.find()返回一个Tag。也许你必须使用soup.findall()方法代替soup.find():

pages=soup.findall('span',{'class':'pagnDisabled'})
if len(pages) == 0:
    print 'None'
elif len(pages):
    for i in range(2, len(pages) + 1):
       print i

答案 1 :(得分:1)

.find()会返回一个实现Tag的{​​{1}}对象,但当您尝试使用__len__添加Tag对象时,它将 not 尝试使用标记的长度,因此您必须使用int显式调用它,这将返回标记内容的长度。

此外,len(pages)仅返回1个标记。您需要.find()方法。