我在使用 python 從“漫畫”網站中提取影像時遇到問題。以下是網站上的元素示例:
- img id="comic" one rror="this.src='data:image/gif;base64,R0lGODlhAQABAAIAAAAAAAP///yH5BAEAAAAALAAAAAAAAAAEAAAIBRAA7'; this.removeAttribute('onerror'); this.className = 'loaderror' ;" src="https://example_on_the_image.jpg"> == $0"
如果使用普通瀏覽器查看,我能夠決議出“src”鏈接和影像縱橫比應該如下:
- 渲染尺寸:920 × 1301 像素
- 渲染縱橫比:920∶1301
- 內在尺寸:720 × 1018 像素
- 內在縱橫比:360∶509
- 檔案大小:101 kB
- 當前來源:(圖片的網址)
然而,我下載的影像變成了“160 x 160px”,檔案大小變小了。我嘗試過使用 Beautifulsoup、Selenium 等,仍然得到相同的結果。
但如果我使用:
- 瀏覽器并右鍵單擊“將影像另存為”
- 檢查 -> 在影像元素上 -> 右鍵單擊?? -> 捕獲節點截圖
我能夠使用普通瀏覽器將“渲染大小”保存為上述兩種方法。為什么用python刮,我不能得到正確的縱橫比??
希望有人能在這方面或我做錯的地方指導我,謝謝。
uj5u.com熱心網友回復:
解決了這個問題,Selenium 無法以完整渲染大小“截屏”元素,但使用 Playwright 可以讓我在瀏覽器加載后顯示的正確縱橫比上截屏。
uj5u.com熱心網友回復:
''' 這是我的編劇代碼:
from playwright.sync_api import sync_playwright
manga_url = ("the url that u going to scrape")
dwn_path = your_directory
os.chdir(dwn_path)
with sync_playwright() as p:
browser = p.chromium.launch(headless=False, slow_mo=500)
page = browser.new_page()
page.goto(manga_url)
page.locator("#comic").screenshot(path="screenshot.png")
print(page.title())
browser.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/474892.html
