我一直在試圖移植一個腳本,它將從雅虎財經網站請求基本數據,但我想尋找特定的項目而不是整個報告,如價格書籍比例。所以,我已經按照Sentdex的教程介紹瞭如何做到這一點。問題是這個示例代碼是爲Python 2.7編寫的,我正在努力爲Python 3做這個工作,當然還要增加更多的功能來擴展它。使用Python 3從雅虎財經網站檢索股票信息
下面是它是迄今爲止在尋找:
import time
import urllib
import urllib.request
sp500short = ['a', 'aa', 'aapl', 'abbv', 'abc', 'abt', 'ace', 'aci', 'acn', 'act', 'adbe', 'adi', 'adm', 'adp']
def yahooKeyStats(stock):
try:
sourceCode = urllib.request.urlopen('http://finance.yahoo.com/q/ks?s='+stock).read()
pbr = sourceCode.split('Price/Book (mrq):</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
print ('price to book ratio:'),stock,pbr
except Exception as e:
print ('failed in the main loop'),str(e)
for eachStock in sp500short:
yahooKeyStats(eachStock)
time.sleep(1)
我幾乎可以肯定的問題是對PBR變量定義,在它的分裂的一部分。的:
Price/Book (mrq):</td><td class="yfnc_tabledata1">
而且...:
</td>
...只是某種分隔符正如我正在尋找,實際值,在上面列出的兩個項目之間。但是,到目前爲止,它只是在執行時給我例外消息。
任何幫助將不勝感激。 乾杯,
使用HTML解析器,如BeautifulSoup。 –
有很多方法可以在不刮取網頁的情況下做你想做的事情...相關:http://stackoverflow.com/questions/12433076/download-history-stock-prices-automatically-from-yahoo-finance-in-python –