Ich habe versucht, ein Skript zu portieren, die grundlegende Daten von Yahoo Finance-Website anfordern, aber ich würde nach bestimmten Elementen statt der gesamten Berichte, wie Preis zu suchen Buchverhältnisse, zum Beispiel. Also, ich habe ein Tutorial von Sentdex verfolgt, wie man das macht. Das Problem ist, dass der Beispielcode für Python 2.7 geschrieben wurde und ich versuche, dass das für Python 3 funktioniert und natürlich erweitert wird, indem weitere Features hinzugefügt werden.Verwenden von Python 3 zum Abrufen von Bestandsinformationen Von Yahoo Finance Site
Hier ist, wie es schaut so weit:
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)
Ich bin fast sicher, dass das Problem auf der pbr Variablendefinition ist, auf dem Splitting ein Teil davon. Die:
Price/Book (mrq):</td><td class="yfnc_tabledata1">
Und ...:
</td>
... sind nur eine Art Trennzeichen wie das, was ich suche, den tatsächlichen Wert, liegt zwischen diesen beiden oben aufgeführten Gegenstände. Aber bis jetzt gibt es mir nur die Ausnahmebedingung, wenn ich es ausführe.
Jede Hilfe wird sehr geschätzt. Cheers,
Verwenden Sie einen HTML-Parser wie BeautifulSoup. –
Es gibt viele Möglichkeiten zu tun, was Sie wollen, ohne eine Webseite zu scrappen ... Related: http://StackOverflow.com/Questions/12433076/Download-History-Stock-Prices-Automatisch-von-Yahoo-Finance-in-Python –