Я пытаюсь загрузить изображения через URL-адреса, хранящиеся в TXT-файле, используя Python 3, и я получаю сообщение об ошибке при попытке сделать это на некоторых сайтах. Это ошибка, которую я получаю:Ошибка при попытке очистить изображения
File "C:/Scripts/ImageScraper/ImageScraper.py", line 14, in <module>
dl()
File "C:/Scripts/ImageScraper/ImageScraper.py", line 10, in dl
urlretrieve(URL, IMAGE)
File "C:\Python34\lib\urllib\request.py", line 186, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "C:\Python34\lib\urllib\request.py", line 161, in urlopen
return opener.open(url, data, timeout)
File "C:\Python34\lib\urllib\request.py", line 469, in open
response = meth(req, response)
File "C:\Python34\lib\urllib\request.py", line 579, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python34\lib\urllib\request.py", line 507, in error
return self._call_chain(*args)
File "C:\Python34\lib\urllib\request.py", line 441, in _call_chain
result = func(*args)
File "C:\Python34\lib\urllib\request.py", line 587, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
, используя этот код:
from urllib.request import urlretrieve
def dl():
with open('links.txt', 'r') as input_file:
for line in input_file:
URL = line
IMAGE = URL.rsplit('/',1)[1]
urlretrieve(URL, IMAGE)
if __name__ == '__main__':
dl()
Я принимаю его потому, что они не позволяют «ботами», чтобы получить доступ к их веб-сайт, но с некоторых исследований я узнал, что есть способ вокруг, по крайней мере при использовании urlopen, но я не могу применить обходной путь к моему коду, когда я использую urlretrieve. Можно ли заставить это работать?
Несколько комментариев - я считаю, что вы используете python 3. Я обновил описание, чтобы сказать это (и теги). Кроме того, обновлен более правильный способ открытия файла с помощью 'with'. – gabhijit