我試圖從雅虎財務使用urllib2拉動信息,然後使用分割函數來顯示淨收入。當我在Python 2.7.12 shell中運行程序時,必須在單引號中打印帶有股票代碼的命令「yahooNetIncome('')」。每當我這樣做,它會出現錯誤「主循環列表索引超出範圍失敗」。我相當新的python,所以我不完全理解這個問題。如果有人可以請幫助,將不勝感激。Python錯誤'列表索引超出範圍'使用分割函數時
import time
import urllib2
from urllib2 import urlopen
stock = ['a', 'aa', 'aapl', 'abbv', 'abc', 'abt', 'ace', 'aci', 'acn', 'act', 'adbe', 'adi', 'adm', 'adp']
def yahooNetIncome(stock):
try:
sourceCode = urllib2.urlopen('https://finance.yahoo.com/quote/' + stock + '/financials').read()
NI = sourceCode.split('<span data-reactid=".1vqhh4ora92.1.$0.0.0.3.1.$main-0-Quote-Proxy.$main-0-Quote.0.2.0.2:1:$INCOME_STATEMENT.0.0.$GROSS_PROFIT.1:$0.0.0">')[1].split('</span>')[0]
print 'Net Income: ', NI
except Exception, e:
print 'failed in main loop', str(e)
第一個split命令返回長度<2的列表,或者第二個返回空列表。您應該使用像BeautifulSoup這樣的專用HTML解析器,而不是嘗試在現在正在使用的HTML元素上使用動態分割功能。 – James