line = line.strip() TypeError: 'NoneType' object is not callable

倖福魔咒の 提交于 2019-12-20 07:06:33

问题


I am trying to find all num's in a list from an html using beautifulsoup:

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`

I'm getting a traceback:

Traceback (most recent call last): File "C:\Documents and Settings\mea388\Desktop\PythonSchool\new 12.py", line 14, in line = line.strip() TypeError: 'NoneType' object is not callable

I cannot understand why I'm getting a traceback.


回答1:


That's because you are trying to run strip on the tag class within beautiful soup.

Change line 14 to:

 line = line.string.strip()

However be aware that this can still be None when the tag you are searching for has multiple sub elements. Seee link to string method on doco for beautiful soup



来源:https://stackoverflow.com/questions/35724358/line-line-strip-typeerror-nonetype-object-is-not-callable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!