为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 Python 从 url 链接下载图像

无法使用 Python 从 url 链接下载图像

达令说 2021-07-12 16:13:29
我想从网上下载图像,但无论使用哪种方法,我总是收到错误消息。但是,使用这种方法下载其他图像没有问题。方法一使用 Python 的请求和 Pillow 库。这里的图像应该直接从 url 下载。import requestsfrom PIL import Imagefrom io import BytesIOurl = 'https://mobec.sk/proxy/geo?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&layers=custom%3Avrbovce_elektrina&tiled=true&STYLES=&WIDTH=512&HEIGHT=512&CRS=EPSG%3A3857&FORMAT_OPTIONS=dpi%3A180&BBOX=1947003.9844800085%2C6242153.477880634%2C1949449.969385134%2C6244599.46278576'response = requests.get(url)img = Image.open(BytesIO(response.content))   # error occurs hereimg.save('output.png')我收到以下错误:OSError: cannot identify image file <_io.BytesIO object at 0x04956510>方法二使用 Python 的 Selenium 库和 chromedriver。在这里,我尝试在 Web 浏览器中显示图像并使用 Selenium 库打印整个页面。from selenium import webdriverfrom PIL import Imagefrom io import BytesIOurl = 'https://mobec.sk/proxy/geo?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&layers=custom%3Avrbovce_elektrina&tiled=true&STYLES=&WIDTH=512&HEIGHT=512&CRS=EPSG%3A3857&FORMAT_OPTIONS=dpi%3A180&BBOX=1947003.9844800085%2C6242153.477880634%2C1949449.969385134%2C6244599.46278576'chrome = webdriver.Chrome('path/to/chromedriver')chrome.get(url)png = chrome.get_screenshot_as_png()im = Image.open(BytesIO(png))im.save('output.png')chrome.quit()这种方法的问题是在 chromedriver 驱动程序打开的 Chrome 浏览器中没有加载(显示)图像。手动将链接粘贴到普通(桌面应用程序)Chrome 中时,会显示图像。
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

我在两个链接上测试了这两种方法,看起来第二个链接有问题:第一个工作得很好,无论是使用浏览器手动打开它还是使用任何这些方法;第二个没有在浏览器中打开,并且在两种方法中都出现错误(这两种方法都很好)。

如错误消息中所述 Could not find layer custom:vrbovce_elektrina- 在两种方法和手动粘贴中,浏览器都找不到名为vrbovce_elektrina. 也许那里有错字或此页面上没有这样的图像/图层。

代码很好,就是链接失效了。


查看完整回答
反对 回复 2021-07-21
  • 3 回答
  • 0 关注
  • 275 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信