$yarnaddpuppeteer

生成网址截图,包括SVG和Canvas

您能够在其官方网址上询问关于Puppeteer的越来越多新闻。那个文书档案蛮好,有恢宏的演示,并且具备文书档案都有据可查。

选拔Puppeteer生成Unsplash的显示屏截图

为了保险我们在同豆蔻梢头页面上,这几个是本学科中利用的本子:

constpuppeteer=requireconstmain=async()=>{constbrowser=awaitpuppeteer.launch()constpage=awaitbrowser.newPage()awaitpage.goto('https://unsplash.com')awaitpage.screenshot({path:'unsplash.png'})awaitbrowser.close

现在,大家单击#loginbutton以报到到推文(Tweet卡塔尔(قطر‎。

Puppeteer近来公布了版本2,它是三个很好的软件,能够由此简单易用的API自动实践繁琐的职分。

让大家将视口校勘为壹玖贰零px x 1080px。在goto方法以前插入以下代码:

大家创立了三个变量SECRET_EMAILSECRET_PASSWORD数据解读用于Chrome/Chromium的基于节点的库:Puppeteer-Web前端之家。,应将其替换为您的脸谱电子邮件和密码。

举个例子你无需下载Chromium,则足以设置:puppeteer-core

几天前,使用Puppeteer能够自动试行您日常生活中无聊的天职。

1.使用Puppeteer生成Unsplash的显示器截图

$yarnaddpuppeteer-core
$nodescreenshot

生成预渲染的内容-即服务器端渲染

笔者们仅从screenshot代码中改造了两行。

利用规范DOM API访问网页并提取音讯

2.接纳Puppeteer创立黑客消息PDF

用法

constpuppeteer=requireconstmain=async()=>{constbrowser=awaitpuppeteer.launch()constpage=awaitbrowser.newPage()awaitpage.goto('https://news.ycombinator.com',{waitUntil:'networkidle2'})awaitpage.pdf({path:'hn.pdf',format:'A4'})awaitbrowser.close

明天,继续进步,也得以修改文件名以在像这么的主意:unsplash.png``unsplash2.png``screenshot

在本教程中,大家创造了贰个品种,该类型成立钦命视口内任何给定页面包车型地铁显示器截图。大家还建构了三个体系,能够在内部创设任何网址的PDF。然后,我们以编制程序情势设法登陆了照片墙。

在终极中键入以下内容,继续运营代码:

$nodepdf

使用以下代码制造三个名字为的新文件:signin.js

未来,在5-10秒后,您将在品种中看见叁个带有Unsplash显示器截图的公文。请留意,视口设置为800px
x
600px,因为Puppeteer将此视口设置为开头页面尺寸,该尺寸定义了显示器截图的尺寸。能够利用Page.setViewport(卡塔尔(قطر‎自定义页面大小。unsplash.png

$nodesignin

浏览器开垦职工作者具为网址和Web应用程序的底部提供了成都百货上千动魄惊心的抉择。这一个成效能够透过第三方工具更加的进步和自动化。在本文中,我们将讨论Puppeteer,那是一个用于Chrome
/ Chromium的依据节点的库。

前段时间继续输入以下内容在极端中运营以上代码:

Puppeteer并未Selenium,PhantomJS之类的东西做其余新的作业,但是它提供了一个简便易用的API,并提供了很好的抽象性,由此大家不必顾虑难题的面目。细节管理。

下一场,我们调用了pdf创立PDf的办法并将其调用,并将其格式化为大小:hn.pdf``A4

要在品种中利用Puppeteer,请在顶峰中运作以下命令:

yarn 1.19.1

安装

Puppeteer最少须要Node v6.4.0,但大家将运用async / await,仅在Node
v7.6.0或越来越高版本中受协理,由此请保管将Node.js更新到最新版本以博取具备好处。

最后生机勃勃行被讲明掉,使大家看来了打字的全经过email,并password和点击登陆开关。

第风流倜傥,大家须求puppeteer包装。然后,我们launch在其上调用初始化实例的点子。此办法是异步的,因为它回到二个Promise。因此,我们await为其拿到browser实例。

使用Puppeteer登录Facebook

让我们深深研商一些用到Puppeteer的其实示例。在本教程中,大家将是:

那将要档案的次序的根目录中生成宝来尺寸的PDF文件。hn.pdf

networkidle2对此开展长日子轮询或任何别的附带活动的页面极其常有用,而且当起码三个互连网连接持续最少500皮秒时,感到导航已形成。

Puppeteer由GoogleChrome背后的集团开辟,由此你能够一定它将获取很好的保险。它使大家可以因此一个简单易行易用的API通过JavaScript以编制程序方式在Chromium浏览器上试行政管理见所及操作。

那将起动全套Chromium浏览器,然后登陆推特。

现行反革命,整个文件应如下所示:screenshot.js

puppeteer 2.0.0

它也赢得了积极的保证,由此Chromium帮助ECMAScript的富有新作用。

运用Puppeteer做到那一点真正十分轻易。继续,在品种的根目录中开创贰个文书。然后粘贴以下代码:screenshot.js

应用Puppeteer成立黑客消息PDF

像Cypress一样自动化UI测量试验

第后生可畏,我们将网站替换为Hacker News,然后增加了networkidle2

三个Node库,它提供了尖端API来因此DevTools公约决定Chrome或Chromium。Puppeteer暗中认可景况下无头运维,但能够陈设为运转总体的Chrome或Chromium。

现行反革命创制叁个名称为的文书,并将以下代码粘贴到此中:pdf.js

然后,大家供给输入我们的emailpassword,所以我们抓住选拔input#email,并input#pass从DevTools,并经过大家的SECRET_EMAILSECRET_PASSWORD

constpuppeteer=requireconstmain=async()=>{constbrowser=awaitpuppeteer.launch()constpage=awaitbrowser.newPage()awaitpage.setViewport({width:1920,height:1080,deviceScaleFactor:1,})awaitpage.goto('https://unsplash.com')awaitpage.screenshot({path:'unsplash2.png'})awaitbrowser.close
awaitpage.goto('https://news.ycombinator.com',{waitUntil:'networkidle2'})
awaitpage.pdf({path:'hn.pdf',format:'A4'})

下一场大家调用newPage它并转到Unsplash并对其开展截图,并将截图另存为。unsplash.png

yarn在本教程中,大家将一向使用。若是yarn还没安装,请今后间安装。

而已。今后,大家能够运营该公文来生成Hacker
News的PDF。让我们后续在极端中运转以下命令:

3.使用Puppeteer登录到Facebook

使用Puppeteer,您可以:

注意:仅从1.7.0版发布。puppeteer-core

awaitpage.screenshot({path:'unsplash2.png'})

结论

puppeteer-core意在成为Puppeteer的轻量级版本,用于运维现存的浏览器安装或一连到长途浏览器。确认保障您安装的puppeteer-core版本与你希图连接的浏览器宽容。

您还非得已经设置了风尚版本的Node.js的。

静心:安装Puppeteer时,它会下载保证可与该API一齐利用的Chromium的摩登版本(〜170MB
macOS,〜282MB Linux,〜280MB Win)。要跳过下载,请参阅景况变量。

先决条件

constpuppeteer=requireconstSECRET_EMAIL='example@gmail.com'constSECRET_PASSWORD='secretpass123'constmain=async()=>{constbrowser=awaitpuppeteer.launchconstpage=awaitbrowser.newPage()awaitpage.goto('https://facebook.com',{waitUntil:'networkidle2'})awaitpage.waitForSelector('#login_form')awaitpage.type('input#email',SECRET_EMAIL)awaitpage.type('input#pass',SECRET_PASSWORD)awaitpage.click('#loginbutton')//awaitbrowser.close

对此本课程,您须要JavaScript,ES6 +和Node.js的基本功知识。

然后,我们launch的浏览器,并设置headless模式,false盛产了完全版的Chromium浏览器的。

在Facebook上,#login_form可以经过DevTools访谈选拔器。该采取器满含登陆表单,由此大家选拔waitForSelector办法来等待它。

Node 12.12.0

awaitpage.setViewport({width:1920,height:1080,deviceScaleFactor:1,})

下一场,大家转到推特(TwitterState of Qatar,等待全体内容加载达成。

相关文章

网站地图xml地图