我想從網(wǎng)上下載圖像,但無論使用哪種方法,我總是收到錯(cuò)誤消息。但是,使用這種方法下載其他圖像沒有問題。方法一使用 Python 的請(qǐng)求和 Pillow 庫。這里的圖像應(yīng)該直接從 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')我收到以下錯(cuò)誤:OSError: cannot identify image file <_io.BytesIO object at 0x04956510>方法二使用 Python 的 Selenium 庫和 chromedriver。在這里,我嘗試在 Web 瀏覽器中顯示圖像并使用 Selenium 庫打印整個(gè)頁面。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 驅(qū)動(dòng)程序打開的 Chrome 瀏覽器中沒有加載(顯示)圖像。手動(dòng)將鏈接粘貼到普通(桌面應(yīng)用程序)Chrome 中時(shí),會(huì)顯示圖像。
3 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
我在兩個(gè)鏈接上測試了這兩種方法,看起來第二個(gè)鏈接有問題:第一個(gè)工作得很好,無論是使用瀏覽器手動(dòng)打開它還是使用任何這些方法;第二個(gè)沒有在瀏覽器中打開,并且在兩種方法中都出現(xiàn)錯(cuò)誤(這兩種方法都很好)。
如錯(cuò)誤消息中所述 Could not find layer custom:vrbovce_elektrina
- 在兩種方法和手動(dòng)粘貼中,瀏覽器都找不到名為vrbovce_elektrina
. 也許那里有錯(cuò)字或此頁面上沒有這樣的圖像/圖層。
代碼很好,就是鏈接失效了。
添加回答
舉報(bào)
0/150
提交
取消