我想从网上下载图像,但无论使用哪种方法,我总是收到错误消息。但是,使用这种方法下载其他图像没有问题。
方法一
使用 Python 的请求和 Pillow 库。这里的图像应该直接从 url 下载。
import requests
from PIL import Image
from io import BytesIO
url = '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 here
img.save('output.png')
我收到以下错误:
OSError: cannot identify image file <_io.BytesIO object at 0x04956510>
方法二
使用 Python 的 Selenium 库和 chromedriver。在这里,我尝试在 Web 浏览器中显示图像并使用 Selenium 库打印整个页面。
from selenium import webdriver
from PIL import Image
from io import BytesIO
url = '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 中时,会显示图像。
qq_花开花谢_0
相关分类