如何从网址获取网站的远程屏幕截图?

时间:2017-10-23 08:31:15

标签: c# html multithreading html-agility-pack webpage-screenshot

所以我有一个应用程序:

  1. 从SQL

  2. 获取n个链接
  3. 为每个链接创建一个新主题

  4. 使用每个线程的HTML-Agility-Pack获取本网站的HTML代码

  5. 将其数据保存为SQL(图像大小,页面大小,字数,单词等),并将此过程与日期保存

  6. 这是检查网站上的数据并查看是否有任何更改(如错误或以前上传过的图片有问题),我想为每个页面添加屏幕截图/缩略图。如何在每个帖子中截取整个页面的屏幕截图?

2 个答案:

答案 0 :(得分:0)

要制作屏幕截图,您需要呈现HTML。这是Web浏览器的任务。在寻找C#解决方案时,您可以使用CefSharp(https://github.com/cefsharp/CefSharp)在屏幕外模式下呈现html。

答案 1 :(得分:0)

看起来像一个有趣的应用程序。因为您已经获得了整个URL的HTML(我假设该应用程序正在具有Internet连接的计算机/服务器上运行):

有三种方法可以做到这一点(实际上更多)。

  1. 在线程中 - 创建一个System.Windows.Forms.Form对象,将一个webbrowser控件添加到其子控件列表(Dock = Fill)。使浏览器导航到网址。导航完成后 - 获取WinForms对话框的屏幕截图。
  2. 在线程中启动chrome / IE Web浏览器,将Url作为命令行参数传递。在线程中等待一段时间(没有一种很好的方法可以知道渲染完成时)。截取屏幕截图。
  3. 在线程中 - 使用selenium类型的.net兼容库 - 它可以帮助您进行web ui测试自动化,然后执行步骤#2。使用此方法,您可以更精细地控制Web浏览器。
相关问题