2017-04-03 7 views
0

Ich versuche, einige Daten aus dieser linkDaten Scraping mit urllib

zu erhalten, um den offenen Preis aus den obigen Link erhalte ich den folgenden Code verwende

import urllib 
from urllib.request import urlopen 

symbols=['KEL', 'BYCO'] 
def keystats(): 
    try: 
     response = urllib.request.urlopen('http://www.scstrade.com/StockScreening/SS_CompanySnapShot.aspx?symbol='+symbol) 
     sourcecode = response.readlines() 
     sourcecode = str(sourcecode) 
     open_price = sourcecode.split('<span id="MainContent_lbl_open" style="font-weight:bold;">')[1].split('</span>')[0] 
     print(open_price) 

    except: 
     print('Error') 

for symbol in symbols:   
    keystats() 

Ich glaube, dass sollte über Code sein Kann mir das Ergebnis des offenen Preises als 8.20 geben. Stattdessen erhalte ich eine Error-Zeichenfolge. Kann jemand sagen, was in dem obigen Code falsch ist?

Antwort

1

Das Problem ist die Zeichenfolge, die Sie verwenden, um zu trennen, wenn Sie das HTML überprüfen, werden Sie bemerken, dass der Begriff ist: <span id="MainContent_lbl_open"><b>8.20</b></span>, so sollten Sie nach diesen Begriffen suchen.

Code:

import urllib 
from urllib.request import urlopen 

symbols=['KEL', 'BYCO'] 
def keystats(): 
    try: 
     response = urllib.request.urlopen('http://www.scstrade.com/StockScreening/SS_CompanySnapShot.aspx?symbol='+symbol) 
     sourcecode = response.readlines() 
     sourcecode = str(sourcecode) 
     open_price = sourcecode.split('<span id="MainContent_lbl_open"><b>')[1].split('</b></span>')[0] 
     print(open_price) 

    except: 
     print('Error') 

for symbol in symbols:   
    keystats() 

Ausgang:

8.20 
21.59