Für die Arbeit versuche ich, Masse Daten von der Environment Canada Webseite, die es eigene Anweisungen hier tatsächlich hat: ftp://ftp.tor.ec.gc.ca/Pub/Get_More_Data_Plus_de_donnees/Readme.txt Wenn ich meinen Code ausführen, bekomme ich immer Fehler 10054; Bestehende Verbindung wird vom Remote-Host zwangsweise geschlossen. Als ein ziemlich neuer Programmierer frage ich mich, ob die Seite mein Programm einfach nicht mag (Ich habe das Programm in den frühen Stadien auf den Webseiten der Provinzregierung getestet und es schien Informationen zu erhalten) oder ob ich einen spezifischen Fehler in meinem Code habe verhindert, dass ich mich richtig verbinde. Irgendwelche Vorschläge, um fortzufahren, sind willkommen. DankeIOError Während Webcraping Environment Kanada mit Python
Hier ist mein Code; der letzte Try/außer Block ist mein Versuch, die Verbindung nach Erhalt der IOError Nachricht zu wiederholen:
import math
import datetime
import sys
import os
import urllib
# out_folder is relative to local directory
# station id is arbitrary; figure this out from the Web site
# by inspecting the URL of the stations Web page
[station, start_year, end_year, out_folder] = sys.argv[1:5]
print "retrieving data for station "+station+" for years "+start_year+" to "+end_year+" and saving in folder ./"+out_folder+"\n"
# generate filenames and download them
for year in range(int(start_year), int(end_year)+1):
for month in range(1, 2):
url = "http://climate.weather.gc.ca/climateData/bulkdata_e.html?format=csv&stationID="+str(station)+"&Year="+str(year)+"&Month="+str(month+1)+"&Day=1&timeframe=2&submit=Download+Data"
filename = 'stn_'+str(station)+'_'+str(year)+'.csv'
print 'stn_'+str(station)+'_'+str(year)+'.csv'
try:
print "Trying to retrieve data; please hold"
urllib.urlretrieve(url, out_folder+'\\'+filename)
except IOError:
os.mkdir(out_folder)
print "folder "+out_folder+" does not exist yet, creating it ...\n"
try:
print "Trying to retrieve data; please hold"
urllib.urlretrieve(url, out_folder+'\\'+filename)
except IOError:
print "Trying to retrieve data; please hold"
urllib.urlretrieve(url, out_folder+'\\'+filename)
exit()
Zusätzlich, wenn es die letzte Zeile des Zurückverfolgungs hilft, ist:
File "C:\Python27\lib\socket.py", line 476 in readline
data = self._sock.recu(self._rbufsize)
IOError: [Errno socket error] [Errno 10054] An existing connection was forcibly...
http://stackoverflow.com/questions/3058932/socket-error-errno-10054 –