博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找到网页的某一区域,截图,并保存 HTML to Image
阅读量:5226 次
发布时间:2019-06-14

本文共 3149 字,大约阅读时间需要 10 分钟。

python 实现

http://www.jianshu.com/p/7ed519854be7 

利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)

http://codingpy.com/article/take-screenshot-of-web-page-using-selenium/

利用 Python + Selenium 自动化快速截图

from PIL import Imagefrom selenium import webdriverimport time;  # 引入time模块def webscreen(i):    print(i)    if i == 1 or i == 700:        print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))    # url = 'http://192.168.20.58/gfwd/comments-1.html'    url = 'http://192.168.20.58/gfwd/comments-' + str(i) + '.html'    # driver = webdriver.Chrome("C:/Users/maimai/Downloads/chromedriver_win32/chromedriver.exe")    # driver = webdriver.PhantomJS("‪D:/迅雷下载/phantomjs-2.1.1-windows/bin/phantomjs.exe")    driver = webdriver.PhantomJS(r"D:\迅雷下载\phantomjs-2.1.1-windows\bin\phantomjs.exe")    # ‪D:\迅雷下载\phantomjs-2.1.1-windows\bin\phantomjs.exe    driver.set_page_load_timeout(300)    driver.set_window_size(1280, 800)    driver.get(url)    imgelement = driver.find_element_by_id('screen')    location = imgelement.location    size = imgelement.size    savepath = r'images/codingpy_' + str(i) + '.png'    driver.save_screenshot(savepath)    im = Image.open(savepath)    left = location['x']    top = location['y']    right = left + size['width']    bottom = location['y'] + size['height']    im = im.crop((left, top, right, bottom))    im.save(savepath)

 c#实现

static void Main(string[] args)        {            var url = "http://192.168.20.58/gfwd/comments-1.html";            using (var driver = new PhantomJSDriver(@"E:\selenium\phantomjs-2.1.1-windows\bin\"))            {                //进入百度首页                driver.Navigate().GoToUrl(url);                driver.Manage().Window.Size = new Size(1280, 800);                //设置窗体最大化                //driver.Manage().Window.Maximize();                //找到对象                var imgelement = driver.FindElementById("screen");                var location = imgelement.Location;                var size = imgelement.Size;                var savepath = Environment.CurrentDirectory + "\\codingpy_1.png";                driver.GetScreenshot().SaveAsFile(savepath, ScreenshotImageFormat.Png);//屏幕截图                   Image image = System.Drawing.Image.FromFile(savepath);                int left = location.X;                int top = location.Y;                int right = left + size.Width;                int bottom = top + size.Height;                //截图                Bitmap bitmap = new Bitmap(savepath);//原图                Bitmap destBitmap = new Bitmap(size.Width, size.Height);//目标图                Rectangle destRect = new Rectangle(0, 0, size.Width, size.Height);//矩形容器                Rectangle srcRect = new Rectangle(left, top, size.Width, size.Height);                Graphics graphics = Graphics.FromImage(destBitmap);                graphics.DrawImage(bitmap, destRect, srcRect, GraphicsUnit.Pixel);                destBitmap.Save("d:\\aa.Png");                graphics.Dispose();            }        }

 

 

 

参考链接  http://www.cnblogs.com/xyang/archive/2013/02/25/2932145.html

            

http://seleniumhq.github.io/selenium/docs/api/dotnet/index.html api文档

转载于:https://www.cnblogs.com/baicaocanhua/p/6594172.html

你可能感兴趣的文章
C# winform DataGridView 常见属性
查看>>
逻辑运算和while循环.
查看>>
Nhiberate (一)
查看>>
c#后台计算2个日期之间的天数差
查看>>
安卓开发中遇到的小问题
查看>>
ARTS打卡第3周
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>