我想使用python模块“urllib.request”从url下载图像文件,该模块适用于某些网站(例如mangastream.com),但不适用于另一个(mangadoom.co)接收错误“HTTP error 403:Forbidden”。后一种情况可能有什么问题,如何解决?
我在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上工作
Downloading a picture via urllib and python
How do I copy a remote image in python?
这里的解决方案也不适合,因为我的情况是下载图像。 urllib2.HTTPError: HTTP Error 403: Forbidden
也欢迎使用非python解决方案。非常感谢你的建议。
此网站正在阻止urllib使用的用户代理,因此您需要在请求中更改它。不幸的是,我不认为
urlretrieve
直接支持这一点。我建议使用漂亮的
requests
库,代码变成(从here):注意,这个网站似乎并不禁止
requests
用户代理。但如果需要修改,则很容易:同样相关:changing user-agent in urllib
你可以做一个开场白。下面是一个例子:
顺便说一下,以下代码是相同的:
(无开瓶器)
(开瓶器建成)
但是,我们无法在使用以下命令时添加标题:
所以在这种情况下,我们必须建立一个开场白。
我在终端中使用url尝试wget,它可以工作:
所以我的方法是使用下面的脚本,它也能工作。
相关问题 更多 >
编程相关推荐