2016-01-28 3 views
0

У меня возникли проблемы с загрузкой нескольких сетевых файлов из онлайн-каталога. Я использую виртуальную среду Linux (Lubuntu) над VMware. Моя цель - получить доступ к подпапке и загрузить все файлы .gz, которые она содержит, в новый локальный каталог, отличный от домашнего каталога. Я попробовал несколько решений, и это самое близкое мне.Python: Загрузите несколько файлов .gz с одного URL

import os 
from urllib2 import urlopen, URLError, HTTPError 
def dlfile(url): 
    # Open the url 
    try: 
     f = urlopen(url) 
     print "downloading " + url 

     # Open our local file for writing 
     with open(os.path.basename(url), "wb") as local_file: 
      local_file.write(f.read()) 

    #handle errors 
    except HTTPError, e: 
     print "HTTP Error:", e.code, url 
    except URLError, e: 
     print "URL Error:", e.reason, url 


def main(): 
    # Iterate over image ranges 
    for index in range(100, 250,5): 
     url = ("http://data.ris.ripe.net/rrc00/2016.01/updates20160128.0%d.gz" 
       %(index)) 
     dlfile(url) 

if __name__ == '__main__': 
    main() 

В онлайн-каталоге не требуется аутентификация, ссылка может быть найдена here.

Я попытался манипуляции со строками и с помощью цикла по именам файлов, но он дал мне следующую ошибку:

HTTP Error: 404 http://data.ris.ripe.net/rrc00/2016.01/updates20160128.0245.gz 
+0

Похоже, что вам не хватает '.' после «обновлений» с URL-адреса http://data.ris.ripe.net/rrc00/2016.01/updates.20160128.0345.gz –

ответ

1

Посмотрите на URL

Хорошо URL: http://data.ris.ripe.net/rrc00/2016.01/updates.20160128.0245.gz

Bad URL (ваш код): http://data.ris.ripe.net/rrc00/2016.01/updates20160128.0245.gz

Отсутствует точка между обновлениями и 2016

Смежные вопросы