我已經寫了我的第一個python代碼來抓取一個網站。Python - AttributeError:'NoneType'對象沒有屬性'findAll'
import csv
import urllib2
from BeautifulSoup import BeautifulSoup
c = csv.writer(open("data.csv", "wb"))
soup = BeautifulSoup(urllib2.urlopen('http://www.kitco.com/kitco-gold-index.html').read())
table = soup.find('table', id="datatable_main")
rows = table.findAll('tr')[1:]
for tr in rows:
cols = tr.findAll('td')
text = []
for td in cols:
text.append(td.find(text=True))
c.writerow(text)
當我在我的IDE,稱爲pyCharm它的作品好,但是當我嘗試一下它運行CentOS的我的服務器上,我碰到下面的錯誤進行本地測試:
domainname.com [~/public_html/livegold]# python scraper.py
Traceback (most recent call last):
File "scraper.py", line 8, in <module>
rows = table.findAll('tr')[:]
AttributeError: 'NoneType' object has no attribute 'findAll'
我猜我沒有遠程安裝模塊,我已經掛了兩天,任何幫助將不勝感激! :)
@karthikr:這不是問題所在;他正在嘗試調用'table.findAll',因爲_table_已經是'None'。 – abarnert
爲了調試這個,嘗試打印'soup',和'soup.find('table')',和'soup.find('table',id =「datatable_main」)',看看它們是什麼樣子。 – abarnert
此外,我注意到您的回溯中的行和源中的行不匹配。您是否有可能將較舊(並且尚未運行)的腳本版本上傳到服務器箱? – abarnert