C# 网页截图全攻略:三种技术与 Chrome 路径查找指南
全局配置
string url = "https://blog.csdn.net/sunshineGGB/article/details/122316754";
一、PuppeteerSharp
1、安装
NuGet搜索安装[PuppeteerSharp]或者在程序包管理器控制台 Install-Package PuppeteerSharp
2、核心代码
string html = PageSourceCodeHelper.GetWebCode1(url, "UTF-8");
PuppeteerHelper.PuppeteerScreenShot(html);
二、Selenium
1、安装库文件
和[PuppeteerSharp]一样安装下方库文件
Selenium.WebDriver
Selenium.WebDriver.ChromeDriver
2、核心代码
var filePath = AppDomain.CurrentDomain.BaseDirectory;
SeleniumHelper.SeleniumScreenshot(url, "mycsdn.png");
三、HtmlToImage
1、安装库文件
和[PuppeteerSharp]一样安装下方库文件
Select.HtmlToPdf.NetCore
System.Drawing.Common
2、核心代码
HtmlToPdfHelper.HtmlToPdfScreenShot(url);
关于如何在使用C#找到Windows上的chrome.exe路径的问题有些头疼
原因如下:
1、没安装Google Chrome,只是将chrome的环境安装在本地如代码的bin文件夹下
2、安装了Google Chrome,通过系统盘的默认安装路径如"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"或ChromeHTML通过注册表寻找
参考
2、Selenium之cannot find Chrome binary错误
3、How do I use C# to get the path to chrome.exe on Windows?
4、在linux上安装谷歌浏览器并且使用selenium操控
5、在Linux上部署selenium,安装google-chrome和chromedriver
C# 网页截图全攻略:三种技术与 Chrome 路径查找指南的更多相关文章
- webBrowser中操作网页元素全攻略
原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ...
- vc6开发ActiveX并发布全攻略(三)(转)
一.环境: windows xp sp3 Microsoft VC++ 6.0 二.制作文件 打开iexpress.exe(windows提供的一个向导式cab制作工具,位置:C:\WINDOWS\s ...
- Python 自动化测试全攻略:五种自动化测试模型实战详解
随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用. 与传统的手工测试技术相比,自动化测试 ...
- Windows Socket五种I/O模型——代码全攻略(转)
Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操 ...
- VSCode插件开发全攻略(三)package.json详解
更多文章请戳VSCode插件开发全攻略系列目录导航. package.json 在详细介绍vscode插件开发细节之前,这里我们先详细介绍一下vscode插件的package.json写法,但是建议先 ...
- VSCode插件开发全攻略(七)WebView
更多文章请戳VSCode插件开发全攻略系列目录导航. 什么是Webview 大家都知道,整个VSCode编辑器就是一张大的网页,其实,我们还可以在Visual Studio Code中创建完全自定义的 ...
- 【转】Perl Unicode全攻略
Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, ...
- VSCode插件开发全攻略(十)打包、发布、升级
更多文章请戳VSCode插件开发全攻略系列目录导航. 发布方式 插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然 ...
- Perl Unicode全攻略
Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, ...
- CSS Grid网格布局全攻略
CSS Grid网格布局全攻略 所有奇技淫巧都只在方寸之间. 几乎从我们踏入前端开发这个领域开始,就不停地接触不同的布局技术.从常见的浮动到表格布局,再到如今大行其道的flex布局,css布局技术一直 ...
随机推荐
- 小程序 构建npm
1. 在项目文件夹下 打开cmd 窗口,输入: npm init 一直回车即可 2. 安装模板 npm i @vant/weapp -S --production 3. 在微信开发者工具,左上角工具中 ...
- Flutter之GetX之路由管理
GetX之路由管理 GetX有一套完整的路由管理,并且不需要context上下文,API非常简洁 直接导航 导航到新的页面 Get.to(NextScreen()); 返回,此方法可以用于关闭Snac ...
- 技术实践|Hive数据迁移干货分享
导语 Hive是基于Hadoop构建的一套数据仓库分析系统,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能.它的优点是可以通过类SQL语句快速实现简单的MapReduce统计,不 ...
- K8S deployment 重启的三种方法
一般重启deployment,常规操作是删掉对应的pod, 但如果有多个副本集的话,一个个删很麻烦.除了删除pod,还可以: 方案一: 加上环境变量kubectl patch deploy <d ...
- Mac 配置多版本JDK
@ 目录 前言 一.下载并安装多个JDK版本 二.配置环境变量 三.切换JDK版本 四.下篇预告!!! 总结 前言 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i. 提示:以下是本篇文章正文 ...
- Qt开发经验小技巧166-170
有时候需要暂时停止某个控件发射信号(比如下拉框combobox添加数据的时候会触发当前元素改变信号),有多种处理,推荐用 blockSignals 方法. //方法1:先 disconnect 掉信号 ...
- error LNK2038: 检测到“_MSC_VER”的不匹配项问题
_MSC_VER这个相当于做了宏的检测 _MSC_VER 定义编译器的版本. 一些编译器版本的_MSC_VER值:MS VC++ 14.0 _MSC_VER = 1900 vs2015MS VC++ ...
- 查看GPU支持的CUDA版本
针对的是英伟达GPU.操作步骤如下: 打开NVIDIA Control Panel(NVIDIA控制面板) 可以在搜索里直接搜索,如下图所示: 在打开的控制面板中点击"帮助",如下 ...
- WPF中实现弹出进度条窗口
实现功能: 模拟一个任务开始执行,在窗口弹出一个进度条,展示执行进度,执行完成弹出提示框.例如做数据查询时,如果查询需要一段时间,操作人员可以很好的知道是否查询完成. 1. 设计进度条弹出窗口 进度条 ...
- Docker 多平台打包错误
1. Multi-platform build is not supported for the docker driver. 问题 因为 Docker 默认使用的 builder 不支持多架构构建镜 ...