PuppeteerSharp: 更友好的 Headless Chrome C# API

前端就有了对 headless 浏览器的需求,最多的应用场景有两个

  1. UI 自动化测试:摆脱手工浏览点击页面确认功能模式

  2. 爬虫:解决页面内容异步加载等问题

也就有了很多杰出的实现,前端经常使用的莫过于 PhantomJS 和 selenium-webdriver,但两个库有一个共性——难用!环境安装复杂,API 调用不友好,1027 年 Chrome 团队连续放了两个大招 Headless Chrome 和对应的 NodeJS API Puppeteer,直接让 PhantomJS 和 Selenium IDE for Firefox 作者宣布没必要继续维护其产品.

Puppeteer

如同其 github 项目介绍:Puppeteer 是一个通过 DevTools Protocol https://chromedevtools.github.io/devtools-protocol/ 控制 headless chrome 的 high-level Node 库,也可以通过设置使用 非 headless Chrome

我们手工可以在浏览器上做的事情 Puppeteer 都能胜任

  1. 生成网页截图或者 PDF

  2. 爬取大量异步渲染内容的网页,基本就是人肉爬虫

  3. 模拟键盘输入、表单自动提交、UI 自动化测试

PuppeteerSharp

Puppeteer Sharp是官方Node.JS Puppeteer API :https://github.com/GoogleChrome/puppeteer的.NET 移植

  1. 由于Puppeteer-Sharp是NetStandard 2.0库,因此最低平台版本是.NET Framework 4.6.1和.NET Core 2.0

  2. 支持WebSocket库的最低Windows版本是Windows 8和Windows Server 2012,具体参见https://docs.microsoft.com/en-us/dotnet/api/system.net.websockets?redirectedfrom=MSDN&view=netframework-4.6.1

这个项目很活跃,大家可以通过作者博客上获取更新记录 http://www.hardkoded.com/

博客园里有一篇文章 PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取:https://www.cnblogs.com/VAllen/p/PuppeteerSharp-AngleSharp-CrawlerSamples.html 更详细的介绍了如何使用PuppeterSharp。在github上还有一个PuppeterSharp的扩展项目:https://github.com/hlaueriksson/puppeteer-sharp-contrib 

相关文章:

  • puppeteer,新款headless chrome!https://www.cnblogs.com/dh-dh/p/8490047.html

  • Puppeteer 应用容器化 https://www.cnblogs.com/weihanli/p/dockerize-puppeteer-apps.html 

原文地址:https://www.cnblogs.com/shanyou/p/10500049.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尽梨了(贪心+dp)

尽梨了problemsolutioncodeproblem 丰之崎学园附近共有 nnn 个商店,在时刻 000 时,英梨梨从学园出发开始购物。 从学园走到任意一个商店,或从一个商店走到另一个商店需要 111 单位时间。 如果英梨梨在时刻 ttt 到达了商店 iii &#xff0c…

CF1612G Max Sum Array

解析 被蓝题虐了。(悲 确实不太难,就是没往那边想。 考虑如果某个值的下标分别位 i1,i2,...,ini_1,i_2,...,i_ni1​,i2​,...,in​ 那么如何计算贡献。 每一个下标和前面统计时作为被减数,和后面统计时作为减数,所以 iki_kik​ …

【Acwing 219. 剪纸游戏】

【Acwing 219. 剪纸游戏】 题意: 给定一张 NM 的矩形网格纸,两名玩家轮流行动。 在每一次行动中,可以任选一张矩形网格纸,沿着某一行或某一列的格线,把它剪成两部分。 首先剪出 11 的格纸的玩家获胜。 两名玩家都采取…

中国.NET:东莞+长沙.NET俱乐部现场花絮及合肥、苏州、上海等地活动预

《传承有序》与微软技术的发展历程相似,微软俱乐部的发展经历着沉沉浮浮,曾经随着微软走向封闭与固执,.NET社区年轻一代的声音被忽略,.NET社区后继无人。社区的沉默是可怕的,很多社区沉寂消亡。但是在2018年&#xff0…

团不过(dp)

团不过problemsolutioncodeproblem 由比滨结衣和雪之下雪乃在玩 NimNimNim 游戏。 共有 nnn 堆石子,双方轮流操作,每次可以从一堆非空石子堆中取走任意个石 子,取走最后一个石子的人胜利。 她们决定让由比滨结衣先手,但忘记了每…

【AcWing 235. 魔法珠

【AcWing 235. 魔法珠 题意: 有n堆魔法珠,第i堆有ai个,两个人轮流进行以下操作: 当轮到某人操作时,如果每堆中魔法珠的数量均为 1,那么他就输了。 问谁赢谁输 题解: 经典博弈论问题 注意本…

P5039 [SHOI2010]最小生成树(网络流)

解析 我大受震撼。 真的没想到是网络流。(事后诸葛:看几百的数据范围应该试试枚举算法) 一道比较开眼界的题吧。 然而用一个十分钟写完的假做法可以骗90分,还是挺香的 首先是一个没什么意思的转化:操作等价于给一条边…

Abp vNext 切换MySql数据库

Abp vNext是Abp的下一代版本,目前还在经一步完善,代码已经全部重写了,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的。从源码来看,Abp vNext…

P1199 [NOIP2010 普及组] 三国游戏

P1199 [NOIP2010 普及组] 三国游戏 题意: 有n个武将,每两个武将之间都有默契值,你和电脑玩游戏,轮流选一个。轮到计算机挑选时,它会尝试将对手军队中的每个武将与当前每个自由武将进行一一配对,找出所有配…

P1791 [国家集训队]人员雇佣(网络流)

解析 熟练和固化在有些时候是等价的。 一个看起来喜闻乐见的模型。 n2n^2n2 信息量你在逗我… 结果是:点数 n2n^2n2 TLE,边数 n2n^2n2 AC。 一种之前所没有见过的打开方式。 还是考虑最小割模型,点 iii 向原点连一条 AiA_iAi​ 的边&#xf…

【网络流专练一】UVA五题(UVA12125,UVA11082,UVA10983,UVA1306,UVA10735)

网络流专练March of the Penguins矩阵解压 Matrix DecompressingBuy one, get the rest freeThe K-League混合图的欧拉回路 Euler Circuit什么破网站,多余空格换行都不能有,还nm不报PE/RE只报WA。 少一行换行也不行,这是什么垃圾文本比较。 …

采用.NET CORE的全异步模式打造一款免费的内网穿透工具--NSmartProxy

什么是NSmartProxy?NSmartProxy是一款免费的内网穿透工具。特点跨平台,客户端和服务端均可运行在MacOS,Linux,Windows系统上;使用方便,配置简单;多端映射,一个NSmart Proxy客户端可以…

Acwing 236. 格鲁吉亚和鲍勃(博弈论妙题)

Acwing 236. 格鲁吉亚和鲍勃 题意: 一排网格,将网格从左到右依次编号 1,2,3,…,并将 N 个西洋棋棋子放在不同的网格上,如下图所示: 两个人轮流移动棋子 每次玩家选择一个棋子,并将其向左移动…

.NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯

1,前言开发环境:在 Visual Studio 2017,.NET Core 2.x串口通讯用于设备之间,传递数据,物联网设备中广泛使用串口方式连接通讯,物联网通讯协议 :Modbus 协议 ASCII、RTU、TCP模式是应用层的协议&…

洛谷P1173:[NOI2016] 网格(tarjan、离散化)

解析 看起来很不码农但写起来其实还行的一道题。 主要也是因为我贺题解把所有的雷都避过去了 首先一个比较显然的结论是:通过堵角上的,答案不超过2。 所以本题只要把答案是-1,0,1,2的情况判出来即可。 -1是只有一个…

【无码专区5】01串(大讨论+构造)

因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dls的实现不太一样。 std可能…

Game of Cards Gym - 102822G

Game of Cards Gym - 102822G 题意: 小兔子和小马喜欢玩奇怪的纸牌游戏。现在,他们正在玩一种叫做0123游戏的纸牌游戏。桌子上有几张牌。其中c0标记为0,c1标记为1,c2标记为2,c3标记为3。小兔子和小马轮流玩游戏&…

开源组件ExcelReport 3.x.x 使用手册(为.netcore而来

ExcelReport转眼已经开源4年了,期间有很长时间也停止了对它的维护。18年年末有人联系到我,说“兄弟,ExcelReport不错,但什么时候支持.netcore呢?”。我寥寥的回了几句搪塞的话,也没当回事。后来这兄弟又来问…

洛谷P4007:小 Y 和恐怖的奴隶主(期望、矩阵快速幂)

解析 不难发现有效的状态只有 SC113165SC_{11}^3165SC113​165 种。 同时,能支持 n1018n10^{18}n1018 的算法也不剩啥了,要么拉插,要么矩乘。 本题当然就是矩乘了,转移矩阵也较为显然。 然而,直接做的话复杂度是 O(T…

集合均值(逆元+数学)

problem 题目描述 有两个可重集合 nnn,初始时 mmm 只包含一个 000,是给定的。 执行以下操作: 在 BBB 中随机选一个数 yyy,把 yyy 从 BBB 移动到 AAA。给答案加上 AAA 的平均值。若 BBB 非空,回到步骤 111。 求最后答…