node puppeteer实现网站登录步骤详解(附代码)

这次给大家带来node puppeteer实现网站登录步骤详解(附代码),node puppeteer实现网站登录的注意事项有哪些,下面就是实战案例,一起来看一下。

puppeteer简介

puppeteer是Chrome团队开发的一个node库,可以通过api来控制浏览器的行为,比如点击,跳转,刷新,在控制台执行js脚本等等。有了这个神器,写个爬虫,自动签到,网页截图,生成pdf,自动化测试什么的,都不在话下。

puppeteer的简单例子

代码来自官网:

const puppeteer = require('puppeteer');(async () => { const browser = await puppeteer.launch();//打开浏览器 const page = await browser.newPage();//打开一个空白页 await page.goto('https://example.com');//在地址栏输入网址并等待加载 await page.screenshot({path: 'example.png'});//截个图 await browser.close();//关掉浏览器})();

登录后复制

阅读上述代码,我们可以发现,1,代码中每一步都是异步操作,2,每一步操作都对应实际使用浏览器的一个行为。理解这两点对使用这个库有很大帮助。另外,比较常用的两个对象就是browser和page对象,对象上有一堆用来操作两个对象的方法。接下来,我们就写一个登录网站的小demo。

没有验证码的网站

对于没有验证码的网站,基本上就是输入账号,输入密码,点击登录这三步,需要用到page对象的两个方法:type用来在输入框中输入信息,click用来点击登录。下面以登录豆瓣为例来举个例子:

const puppeteer = require('puppeteer');const account = `123456@qq.com`;const password = `123456`;(async () => { const browser = await puppeteer.launch();//打开浏览器 const page = await browser.newPage();//打开一个空白页 await page.goto('https://www.douban.com/');//打开豆瓣网站 await page.type('#form_email', account);   await page.type('#form_password', password); await page.click('.bn-submit'); await page.waitForNavigation({  waitUntil: 'load' });//等待页面加载出来,等同于window.onload await page.screenshot({path: 'example.png'});//截个图 await browser.close();//关掉浏览器})();

登录后复制

有人说,我怎么知道到底有没有登录成功呢,一种调试的办法就是使用screenshot,如果你看到的是一个验证码页面,说明没有登录成功,还有一种办法像下面这样:

const browser = await puppeteer.launch({headless: false});//打开有界面的浏览器

登录后复制

传入headless:false后会真的打开一个浏览器的界面,这样你就可以实时看到代码执行到什么地方了。接下来我们说说碰到验证码时怎么办。

有验证码的网站

node puppeteer实现网站登录步骤详解(附代码)

碰到有验证码的网站,可以将headless设成false,借助界面输入验证码,同时监听页面加载事件,实现登录,代码如下:

... await page.waitForNavigation({  waitUntil: 'load' });//等待页面加载出来,等同于window.onload//代码中监听跳转事件if(page.url() === 'https://www.douban.com/accounts/login'){    //登录不成功  console.log('需要输入验证码');  //等待再一次跳转  while(true){    await page.waitForNavigation({      waitUntil: 'load'    })    console.log(page.url())    if(page.url() === 'https://www.douban.com/'){      console.log('登录成功');      break;    }  } }

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS获取url参数并发送json格式POST步骤详解

js传递json参数到controller步骤分析

以上就是node puppeteer实现网站登录步骤详解(附代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2762472.html

(0)
上一篇 2025年3月8日 09:56:32
下一篇 2025年3月8日 09:56:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue授权登录实现方法

    这次给大家带来Vue授权登录实现方法,Vue授权登录的注意事项有哪些,下面就是实战案例,一起来看一下。 项目采用Vue作为开发框架,用户浏览页面时有两种情况: 一种是需要用户先登录之后才能继续浏览; 另一种是用户无需登录即可随意浏览。 在无…

    编程技术 2025年3月8日
    200
  • node实现爬虫功能案例分析

    这次给大家带来node实现爬虫功能案例分析,node实现爬虫功能的注意事项有哪些,下面就是实战案例,一起来看一下。 node是服务器端的语言,所以可以像python一样对网站进行爬取,下面就使用node对博客园进行爬取,得到其中所有的章节信…

    2025年3月8日
    200
  • node做出微信个人号机器人步骤详解

    这次给大家带来node做出微信个人号机器人步骤详解,node做出微信个人号机器人的注意事项有哪些,下面就是实战案例,一起来看一下。 现在,日常生活已经离不开微信,本文将会抛砖引玉演示如何使用 wechaty 操作微信个人号做一些有意思的东西…

    编程技术 2025年3月8日
    200
  • 解决node修改后需频繁手动重启如何处理

    这次给大家带来解决node修改后需频繁手动重启如何处理,解决node修改后需频繁手动重启的注意事项有哪些,下面就是实战案例,一起来看一下。 在开发过程中,每次修改代码保存后,我们都需要手动重启程序,才能查看改动的效果。使用 supervis…

    2025年3月8日
    200
  • node搭建服务器,写接口,调接口,跨域方法详解

    这次给大家带来node搭建服务器,写接口,调接口,跨域方法详解,node搭建服务器,写接口,调接口,跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 刚开始学node,今天做这个也是累死宝宝了,以后可以自己写接口自己用了,再也不用麻烦…

    2025年3月8日
    200
  • node 命令方式启动修改端口步骤详解

    这次给大家带来node 命令方式启动修改端口步骤详解,node 命令方式启动修改端口的注意事项有哪些,下面就是实战案例,一起来看一下。 使用说明 app.js var port = process.env.PORT || 7777app.l…

    编程技术 2025年3月8日
    200
  • Ajax 配合node js multer 实现文件上传功能

    这篇文章主要介绍了ajax 配合node js multer 实现文件上传功能,需要的朋友可以参考下 说明 作为一个node 初学者,最近在做一个聊天软件,支持注册、登录、在线单人、多人聊天、表情发送、各种文件上传下载、增删好友、聊天记录保…

    2025年3月8日
    200
  • node前端模板引擎Jade标签使用详解

    这次给大家带来node前端模板引擎Jade标签使用详解,node前端模板引擎Jade标签使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1、文档声明 我们在开始写一个 html 页面的时候,首先要写上 DOCTYPE 文档声明的,现…

    编程技术 2025年3月8日
    200
  • node前端开发模板引擎Jade使用步骤详解

    这次给大家带来node前端开发模板引擎Jade使用步骤详解,node前端开发模板引擎Jade使用的注意事项有哪些,下面就是实战案例,一起来看一下。 随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js…

    编程技术 2025年3月8日
    200
  • node Async/Await 异步编程实现详解

    这次给大家带来node Async/Await 异步编程实现详解,node Async/Await 异步编程实现的注意事项有哪些,下面就是实战案例,一起来看一下。 一、异步编程的终极解决方案 前几天写过关于 javascript 异步操作的…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论