我想使用 python 模块“urllib.request”从 url 下载图像文件,它适用于某些网站(例如 mangastream.com),但不适用于另一个(mangadoom.co)接收错误“HTTP 错误 403:禁止访问” .后一种情况可能是什么问题以及如何解决?
我在 OSX 上使用 python3.4。
import urllib.request
# does not work
img_url = 'http://mangadoom.co/wp-content/manga/5170/886/005.png'
img_filename = 'my_img.png'
urllib.request.urlretrieve(img_url, img_filename)
在错误消息的末尾,它说:
...
HTTPError: HTTP Error 403: Forbidden
但是,它适用于另一个网站
# work
img_url = 'http://img.mangastream.com/cdn/manga/51/3140/006.png'
img_filename = 'my_img.png'
urllib.request.urlretrieve(img_url, img_filename)
我已经尝试了下面帖子中的解决方案,但它们都不适用于 mangadoom.co。
这里的解决方案也不适合,因为我的情况是下载图像。 urllib2.HTTPError:HTTP 错误 403:禁止访问
也欢迎非 python 解决方案。您的建议将不胜感激。
原文由 neobot 发布,翻译遵循 CC BY-SA 4.0 许可协议
该网站阻止了 urllib 使用的用户代理,因此您需要在请求中更改它。不幸的是,我不认为
urlretrieve
直接支持这个。我建议使用漂亮的
requests
库,代码变为(从 这里):请注意,该网站似乎并未禁止
requests
user-agent。但如果需要修改很容易:也相关: 更改 urllib 中的用户代理