网页截图操作

案例一:分别打开我要自学网页面和百度页面,然后进行截图

from selenium import webdriver
from time import sleep

#加载浏览器驱动
driver=webdriver.Firefox()

#打开自学网页面并截图
driver.get("http://www.51XXX.net")
driver.get_screenshot_as_file(r"E:\Python_script\51XXX.jpg")

#打开百度页面并截图
driver.get("http://www.baidu.com")
driver.get_screenshot_as_file(r"E:\Python_script\baidu.png")
sleep(2)
driver.quit()

案例二:

from selenium import webdriver
from time import sleep

driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
sleep(2)
#截图方式一:用途:只能截取当前页面的全屏,获取截屏png图片,参数是文件的绝对路径,截屏必须是.png图片。如果只给文件名,截屏会存在项目的根目录下。
driver.get_screenshot_as_file(r"D:\a.png")
sleep(2)
driver.quit()

#截图方式二:用途:用法等同于方式一,获取截屏png图片,参数是文件名称,截屏必须是.png图片, 如果只给文件名,截图会保存在项目的根目录下面。
#driver.save_screenshot(filename/full_path):


#截图方式三用途:截取后直接是二进制,并不能像前两个方法一样直接生成图片,我们再写入本地即可。
#driver.get_screenshot_as_png():

#截图方式四:用途:截取后的图片是以base64加密过的,需要解密后再写入本地。获取截屏的base64编码数据,在HTML界面输出截图时使用。
#driver.get_screenshot_as_base64(r"D:\a.png")

案例三:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.implicitly_wait(10)
img_save = driver.find_element(by=By.XPATH, value="//img[@id='s_lg_img']")
a = driver.get_screenshot_as_png()  # 截取后直接是二进制
with open("./img/two01.jpg", mode="wb")as f:
     f.write(a)
driver.quit()
#以上用法是截取页面全屏,还可根据定位的元素截取相应的图片

img_save = driver.find_element(by=By.XPATH, value="//img[@id='s_lg_img']")
a = img_save.screenshot_as_png  # 截取后直接是二进制,无括号
with open("./img/two01.jpg", mode="wb")as f:
     f.write(a)
 driver.quit()



posted @ 2023-01-16 15:46  哈哈妞儿  阅读(454)  评论(0)    收藏  举报