Загрузка всех доступных файлов 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 в качестве уведомления.
Так что в вашем коде нет ничего плохого (хотя вы, кажется, потеряли отступ), что, как я вижу, может вызвать эту проблему.