我想从网上下载图像,但无论使用哪种方法,我总是收到错误消息。但是,使用这种方法下载其他图像没有问题。方法一使用 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条经验 获得超7个赞
我在两个链接上测试了这两种方法,看起来第二个链接有问题:第一个工作得很好,无论是使用浏览器手动打开它还是使用任何这些方法;第二个没有在浏览器中打开,并且在两种方法中都出现错误(这两种方法都很好)。
如错误消息中所述 Could not find layer custom:vrbovce_elektrina
- 在两种方法和手动粘贴中,浏览器都找不到名为vrbovce_elektrina
. 也许那里有错字或此页面上没有这样的图像/图层。
代码很好,就是链接失效了。
添加回答
举报
0/150
提交
取消