目标:调用某一网页,自动抓取整个页面为图片,并保存

 public class WebSiteThumbnail{Bitmap m_Bitmap;string m_Url;public WebSiteThumbnail(string Url){m_Url = Url;}public static Bitmap GetWebSiteThumbnail(string Url){WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail(Url);return thumbnailGenerator.GenerateWebSiteThumbnailImage();}public Bitmap GenerateWebSiteThumbnailImage(){Thread m_thread = new Thread(new ThreadStart(_GenerateWebSiteThumbnailImage));m_thread.SetApartmentState(ApartmentState.STA);m_thread.Start();m_thread.Join();return m_Bitmap;}private void _GenerateWebSiteThumbnailImage(){WebBrowser m_WebBrowser = new WebBrowser();m_WebBrowser.ScrollBarsEnabled = false;m_WebBrowser.Navigate(m_Url);m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)Application.DoEvents();m_WebBrowser.Dispose();}private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){WebBrowser m_WebBrowser = (WebBrowser)sender;//取得页面宽度和高度var w = m_WebBrowser.Document.Body.ScrollRectangle.Width;var h = m_WebBrowser.Document.Body.OffsetRectangle.Bottom;//执行.js出错时任执行m_WebBrowser.ScriptErrorsSuppressed = true;m_WebBrowser.ClientSize = new Size(w,h);m_WebBrowser.ScrollBarsEnabled = false;m_Bitmap = new Bitmap(w,h);m_WebBrowser.BringToFront();m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(w,h, null, IntPtr.Zero);}}

public ActionResult Index(){var url = "/home/show";var rnd=new Random();var saveurl =Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"downpic",rnd.Next(10)+".jpg");Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail(url);m_Bitmap.Save(saveurl, System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可
ViewBag.url = "/downpic/" + Path.GetFileName(saveurl);return View();}

经测试 有一些网站无法生成快照或空白,以后研究

转载于:https://www.cnblogs.com/lunawzh/p/10204367.html

.net mvc C#生成网页快照相关推荐

  1. spring mvc 自动生成代码

    spring mvc 自动生成代码 generator mybaits 详细配置: 目录结构 执行命令 OK git:https://gitee.com/xxoo0_297/generator.git ...

  2. java iecapt.exe_【C#】NET截屏网页,生成网页快照开发——IECapt、CutyCapt

    软件介绍 IECapt.CutyCapt 生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ ### 操作代码 ...

  3. IECapt、CutyCapt 生成网页快照

    IECapt.CutyCapt  生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ 1.以管理员身份 运行c ...

  4. php生成网页快照图片,PHP生成网页快照

    $url = 'http://www.baidu.com/'; //抓取百度 echo snapshot($url); //输出结果为图片地址 echo snapshot($url, './baidu ...

  5. 改变快照内容php,PHP生成网页快照 代码

    $url = 'www.baidu.com'; //抓取百度 echo snapshot($url); //输出结果为图片地址 echo snapshot($url, './baidu.png'); ...

  6. JAVA线程根据给定URL生成网页快照

    最近项目中遇到这样一个需求,根据一个动态的URL来生成对应的网页快照.网上找了很多资料,最终采用如下方法解决. 生成原理:将动态URL的页面先生成HTML文件,然后再根据生成的HTML生成快照.生成的 ...

  7. IIS7 MVC网站生成、发布

    (1)生成. 确保System.Web.Mvc.dll在bin目录下 (2)发布网站到文件系统 (3)在IIS中为网站添加应用程序池(一个虚拟目录,一个应用程序池) (4)添加在默认网站下添加虚拟目录 ...

  8. asp.net mvc + javascript生成下载文件

    近期做的是对现有项目进行重构.WEB FROM改成MVC,其实也算是推倒重来了. 里面有一个导出功能,将数据输出成txt文件,供下载.原先的做法是有一个隐藏的iframe,在这个iframe的页面中设 ...

  9. DWZ 用dialog调用MVC自动生成的密码修改页面一直出现“数据加载中,请稍等...”和去掉“数据加载中,请稍等”的方法

    在MVC框架中调用JS框架<DWZ富客户端框架>在用dialog调用自动MVC系统自动生成的密码修改页面一直出现"数据加载中,请稍等..."的问题. <a tit ...

最新文章

  1. SAP 调用smartforms打印如何统计实际打印状态和打印次数
  2. mariadb mysql同步_MySQL(Mariadb)主从同步基础
  3. Java 反射 mdc失效,log4j中MDC使用陷阱
  4. 语言 蜗牛爬树问题_趣数课堂:小学奥数蜗牛爬井问题,再加一只乌龟,你算不出来了吧...
  5. notepad 快速新建html,notepad编写html
  6. 论文 | 研究方法 —— 结构方程
  7. python控制、监听鼠标键盘
  8. Linux安装搜狗拼音和谷歌拼音输入法
  9. Java Swing实现简易计算器
  10. 开关电源基础知识(上)_拓扑类型、效率与输入输出及占空比的关系
  11. [转载] 之前碰过的木马分析
  12. 抽奖 java_年会抽奖程序 java开发 可内定中奖人员 一键导入员工 使用简单
  13. 关于计算机听课如何做笔记,如何高效地听课记录笔记
  14. win 10 硬盘安装 ubuntu 18.04
  15. IMO 2017 T4解答
  16. 数据库sql中S P J SPJ 表的创建
  17. W-Hive 支持苹果 iOS16 新版本
  18. JavaScript—进阶篇
  19. linux 补充文件名,linux修改文件名(Linux 下使用 shell 批量修改文件名的三种方法)...
  20. STM32G4系列通过SPI配置DRV8353S驱动芯片

热门文章

  1. 计算机毕业设计Android个人日常消费理财_财务软件
  2. 飞控pixhawk硬件框架
  3. html怎么连接mysql_html怎么连接数据库
  4. 互联网如何利用短信平台
  5. obs-studio源码分析:窗口、显示器(桌面)捕捉(转载)
  6. python中土耳其编码范围_python中的土耳其语字符
  7. 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)下
  8. mac电脑连接安卓手机
  9. vue路由跳转 router-link 清除历史记录的三种方式
  10. 常见笔顺错误的字_汉字笔顺已列入中考范围,这些常见字笔顺,常被写错,自查一下吧...