Загрузка всех доступных файлов CSV и KML с определенного веб-сайта

Я пытаюсь использовать python для автоматизации процесса загрузки всех доступных файлов CSV и KML с data.gov.sg. Однако мы получили сообщение об ошибке "Ошибка HTTP 403: запрещено". Мы привыкли получать ошибку robots.txt, которая была решена. Что-то не так с нашей кодировкой ниже?

import mechanize
from time import sleep
br = mechanize.Browser()

br.open('https://data.gov.sg/')

f=open("source.html","w")
f.write(br.response().read()) 
f.close()

filetypes=[".csv",".kml"] 
myfiles=[]
for l in br.links(): 
    for t in filetypes:
        if t in str(l): 
            myfiles.append(l)


def downloadlink(l):
    f=open(l.text,"w") 
    br.click_link(l)
    f.write(br.response().read())
    f.close()
    print l.text," has been downloaded"
#br.back()

for l in myfiles:
    sleep(1) 
    downloadlink(l)

1 ответ

Ошибка HTTP 403 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html означает, что вам был запрещен доступ, либо вам необходимо авторизоваться для доступа к нему, либо администратор сервера заблокировал Вы получаете доступ к нему и отправляете ответ 403 в качестве уведомления.

Так что в вашем коде нет ничего плохого (хотя вы, кажется, потеряли отступ), что, как я вижу, может вызвать эту проблему.

Другие вопросы по тегам