我试图编写一个代码,通过查找范围标签和其中的数字来从HTML中删除数字。无法解决:TypeError:期望的字符串或缓冲区
我不断收到错误“预期的字符串或缓冲区”。
我读过一些解决方案,同时通过做不同的问题我的搜索,但是当我尝试" ''.join(some_list)"
我得到另一个错误:
"sequence item 0: expected string, Tag found"
试图寻找那一个,看到了一些解决方案,如使用.get
而不是re.findall
,但错误不断出现。
代码:
import urllib
from BeautifulSoup import *
url = raw_input('Enter the URL:')
stri = urllib.urlopen(url).read()
soup = BeautifulSoup(stri)
#retrieve of the span tags
spans = ''.join(soup('span'))
numlist = list()
for tag in spans:
num = int(re.findall('[0-9]+', tag))
numlist.append(num)
print(numlist)
我看见几个解决方案,为这些类型的错误,但似乎无法来解决这个问题。
我错过了什么?
我增加了tag.text,错误已经变成一个又一个,现在我越来越: “errno的11004]的getaddrinfo失败”
我看着不同的职位,但未能解决这个问题,所以我跑一行行的代码,看看哪来的问题是,我发现它时,我跑在原代码的第四句出现:
html = urllib.urlopen(url).read()
请帮助?
调试错误消息的第一步,是要找到的行号。您错过了行号。 – tcooc
Python并不只是说“期望的字符串或缓冲区” - 它写了一个堆栈跟踪,显示出存在问题的行。你可以发布堆栈跟踪,以便我们可以看到它吗?否则,我们必须猜测问题出在哪里。 – tdelaney
调试提示:'print'是你的朋友。我添加了'print'badness',输入(soup('span')[0])'到你的代码中,并且得到了'badness'。这不是可以加入的东西。作为're.findall'返回一个列表 –
tdelaney