【Selenium学习笔记】网页截图实践
缘由
我们有一个产品牵扯到核查数据,在核查数据过程中会发现有一些违规网站,这一些违规网站我们要进行截图保留证据。如果是人工截图就非常麻烦,需要截图之后上传到系统,增加了大家的工作量,我们就想着试着程序自动化截图
解决方案
由于我们爬虫都使用的python selenium 调用的chrome无头浏览器,所以我们依然选择了selenium调用chrome进行截图。截图核心代码如下,非常简单
###核心代码如下 driver.get( url ) #初始化一个屏幕大小 driver.set_window_size(1400, 900) ##通过脚本获取页面宽和高,设置窗口大小 width = driver.execute_script("return document.documentElement.scrollWidth") height = driver.execute_script("return document.documentElement.scrollHeight") driver.set_window_size(width, height) time.sleep(2) ##保存截图 driver.save_screenshot( file_path )
上面截图之后发现有一些小的瑕疵,就是只有图片也不知道网址和截图时间,所以我们要对图片进行打水印,水印代码如下
##在图片上写字也就是打水印 img = Image.open(file_path) # add watermark font_path = app.config.get('FONT_PATH') + "/SIMHEI.TTF" font = ImageFont.truetype(font_path, 32) # 添加画板 drawing = ImageDraw.Draw( img ) ##红色字体 color = (0,0,255) drawing.text( (5, 5), DateHelper.getCurrentTime() , fill= color , font=font) drawing.text( (5, 30), url , fill= color , font=font) ##单独保存一个新图片 img.save( watermark_file_path )