【发布时间】:2021-01-19 17:39:27
【问题描述】:
我看过类似的问题,他们都建议使用 urllib/requests 或截图。
使用 urllib/requests 下载图像会呈现不同的用户代理,并且我的会话 cookie 不附带。截屏会将分辨率限制为屏幕上显示的内容。
有没有办法基本上右键单击并“复制图像”,这样我就可以将图像保存到文件中,而无需重新下载图像或调整屏幕上显示的比例?
Edit:
JavaScript simulate right click through code 是该线程中最接近合法答案的东西,建议这是重复的。但是,它是 javascript,而不是 python。
屏幕截图答案似乎是事实上的解决方案,但不符合我的需求,因为我尝试捕获的图像的分辨率高于它被缩放以包含的屏幕区域。
我在谷歌图像搜索结果中使用了 element.screenshot_as_png 技术,“另存为”返回的分辨率为 2932x718 的图像变成了尺寸为 433x106 的裁剪屏幕截图。我想要完整分辨率的图像而无需再次下载(我承认“另存为”确实如此)。
因为我可以“复制图像”而无需再次下载图像,我应该能够通过 selenium 做一些事情(最好不需要我学习 javascript)。也许这可以用 selenium-wire(?) 来完成,尽管我希望尽可能少的依赖。
【问题讨论】:
标签: python selenium firefox webdriver