我想從網上下載圖像,但無論使用哪種方法,我總是收到錯誤消息。但是,使用這種方法下載其他圖像沒有問題。方法一使用 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
提交
取消