2016-04-06 8 views
-1

Ich muss mehrere Dateien von einem FTP-Link herunterladen. aber der Download stoppt mit dem obigen Fehler genau nach 5 Dateien unabhängig von der Reihenfolge. Kann jemand eine Lösung vorschlagenwenn nicht Zeile: Raise EOFError bei der Verwendung von urllib.urlretrieve

import pandas as pd 
import os 
import urllib 
import zipfile 

zipFilePath=['ftp://ftp.sec.gov/edgar/data/1000069/000089418911000620/0000894189-11-000620-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000180/000100018011000006/0001000180-11-000006-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000228/000100022811000014/0001000228-11-000014-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000229/000100022911000015/0001000229-11-000015-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000351/000089418911000615/0000894189-11-000615-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000351/000089418911000655/0000894189-11-000655-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000697/000095/0000950123-11-018381-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1000753/000114036111008714/0001140361-11-008714-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1001039/000119312511027450/0001193125-11-027450-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1001082/000110465911009436/0001104659-11-009436-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/100122/000095/0000950123-11-020431-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1001250/000110465911005139/0001104659-11-005139-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1001288/000095/0000950123-11-019815-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1001604/000100160411000022/0001001604-11-000022-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1001838/000110465911011083/0001104659-11-011083-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1002047/000119312511056223/0001193125-11-056223-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1002517/000095/0000950123-11-011086-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1002638/000119312511022882/0001193125-11-022882-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1002718/000119312511040571/0001193125-11-040571-xbrl.zip', 
'ftp://ftp.sec.gov/edgar/data/1002718/000119312511042365/0001193125-11-042365-xbrl.zip'] 

tempFolderPath = "<give some path>" 
tempDownloadPath=os.path.join(tempFolderPath,"xbrl.zip") 
xbrlFinal=pd.DataFrame() 
for inds,paths in enumerate(zipFilePath): 
    print "processing xmls " + str(inds+1) +" of " + str(len(zipFilePath)) 
    urllib.urlretrieve(paths,tempDownloadPath) 
    fh=open(tempDownloadPath,'rb') 
    z=zipfile.ZipFile(fh) 
    files=z.extract(z.namelist()[0], tempFolderPath) 
    z.close() 
    fh.close() 
+3

Nein, da wir Ihren Code nicht sehen. –

+0

Wo sind die * obigen Fehler *? zeige etwas Code. –

+0

Ich habe den Code hinzugefügt. –

Antwort

0

Ich dachte mir die Antwort. Tatsächlich funktioniert der Download in R gut, so dass die Seite keine Anfrageprobleme aufstellt. Ich habe versucht, verschiedene Pakete in Python, Urllib, wget und Anfragen nicht funktioniert, aber urllib2 funktionierte. der Code ist unten angegeben:

response = urllib2.urlopen(paths) 
zipcontent= response.read() 
with open(tempDownloadPath, 'wb') as f: 
    f.write(zipcontent) 

und urllib2 ist 5-mal schneller als der Rest