0


[python]利用Selenium实现网页全屏截图+部分截图并web实现

好久都没有写文章了,今天记录一下。

实现目标

我的目标是输入一段网址,能够得到该网页的一部分截图。

思路:
根据网址打开网页
先全屏截图,再保存成图片
之后对这张图片进行部分截图

代码

我不需要滚动截图,所以代码比较简单。

from selenium import webdriver
from time import sleep
import numpy as np
import cv2

driver = webdriver.Chrome()
driver.maximize_window()  # 设置打开页面最大化,目的是更好的截取
# 打开网址
driver.get("https://www.baidu.com/")sleep(15)#我实际运行的时候网址是一个加密网址,需要输入账号密码。所以这里在截图之前等待15秒,在这期间输入密码.
 # 截取当前页面
driver.save_screenshot('result.png')
img = cv2.imread('result.png',1);
# size = img.shape
# w = size[1] #宽度
# h = size[0] #高度
# print(size)
# print(w)
# print(h)
cutimg = img[0:500,0:500]
# 利用numpy切片进行裁剪 截取出来的是矩形图片,需要两个坐标。
# 左上角坐标(x1,y1),右下角坐标(x2,y2),裁剪坐标为[y1:y2,x1:x2]
cv2.imwrite('cut.png',cutimg)

可能出现的问题

例如selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

这是因为没有下载浏览器的driver

需要将指定的driver放到PATH中。
对于driver下载链接如下:
Chrome

Edge

Firefox

下载好了之后的具体操作可以参考link

web实现

对于python,streamlit很好用.
在这里插入图片描述](https://img-blog.csdnimg.cn/7ee6a1a231a240df80ca919e48fd0e9c.png)

全部代码

Run

streamlit run app.py

一个更好用的方法

救大命,我竟然忘记了打开网页下载图片竟然有专门的语句。

with Image.open(requests.get(url,stream=True).raw)asim:
      im.save('test.jpg')

image= Image.open(requests.get(url,stream=True).raw)
print(image)
之后输出的有图片的size,说明第一条语句成功,并且是一张图

链接: python Request库的get()方法
链接: 图片读取:Image.open(ImgPath)

读取远程url的图片,记得使用这种方法,天呐,我之前的方法好蠢


本文转载自: https://blog.csdn.net/weixin_45775701/article/details/125941106
版权归原作者 汪呀呀呀呀呀呀呀 所有, 如有侵权,请联系我们删除。

“[python]利用Selenium实现网页全屏截图+部分截图并web实现”的评论:

还没有评论