我試圖編寫一個代碼,通過查找範圍標籤和其中的數字來從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