puppeteer 教程(6) ----入门例子(模拟登陆51cto)

红太狼 2024-04-17 16:56 178阅读 0赞

目标

模拟登陆51cto

主要学习以下知识点


















方法名称 方法说明
page.$x 此方法解析指定的XPath表达式。
page.waitForNavigation 此方法找到一个匹配 selector 选择器的元素,如果需要会把此元素滚动到可视,然后通过 page.mouse 点击它。 如果选择器没有匹配任何元素,此方法将会报错。

详细api 可参考
https://blog.csdn.net/mengxiangxingdong/article/details/99237204

开始

本文章代码均在 上传在
https://gitee.com/hugo110/puppeteer-demo
效果图
在这里插入图片描述

1.代码

  1. /*
  2. 模拟登陆 51 cto
  3. https://home.51cto.com/index
  4. */
  5. const puppeteer = require('puppeteer'); //引入puppeteer库
  6. const xpathUtil = require('./util/XpathUtil');
  7. (async () => {
  8. const browser = await puppeteer.launch({
  9. //启动浏览器
  10. headless: false, //代码运行时打开浏览器方便观察
  11. // devtools:true //打开f12界面
  12. });
  13. const page = await browser.newPage(); //打开浏览器的一个tab 页
  14. //networkidle2 - 只有2个网络连接时触发(至少500毫秒后)
  15. await page.goto('https://home.51cto.com/index', {
  16. timedout: 10 * 1000, waitUntil: 'networkidle2'}); //访问51cto 登陆页面
  17. //等待 账号密码登陆元素出现 並且點擊
  18. await page.waitForXPath('//a[contains(string(),"账号密码登录")]', {
  19. timedout: 10 * 1000});
  20. await xpathUtil.$xClick(page, '//a[contains(string(),"账号密码登录")]');
  21. //等待账号密码显示
  22. await page.waitForSelector('#loginform-username', {
  23. timedout: 10 * 1000});
  24. //输入账号密码
  25. await page.type('#loginform-username', "你的账号")
  26. await page.type('#loginform-password', "你的密码")
  27. //点击登录
  28. await page.click('.loginbtn');
  29. //等待网页跳转 networkidle0 不在有网络响应
  30. const response = await page.waitForNavigation({
  31. timedout: 10 * 1000, waitUntil: 'networkidle0'});
  32. //输出响应的页面
  33. console.log(await response.text())
  34. // await browser.close(); //关闭浏览器
  35. })();

参考博客

https://zhaoqize.github.io/puppeteer-api-zh\_CN/\#?product=Puppeteer&version=v1.19.0&show=api-pageevalselector-pagefunction-args-1

发表评论

表情:
评论列表 (有 0 条评论,178人围观)

还没有评论,来说两句吧...

相关阅读

    相关 TechEd上的51CTO

    写文章之前搜了一下,写今年TechEd的确实不多,本人感觉今年的TechEd微软根本就是为了赚钱,说实话,实在是懒得写这东西,办的没劲,礼物很差劲,吃的根本就不是人吃的饭,亏了

    相关 Jsoup模拟登陆例子

    \[b\]\[size=large\]\[color=green\]Jsoup模拟登陆小例子,不同的网站,需要不同的模拟策略,散仙在这里仅仅作为一个引导学习。\[/color\

    相关 Python3.4模拟登陆例子

    有时候我们的抓取项目时需要登陆到某个网站上,才能看见某些内容的,所以模拟登陆功能就必不可少了,散仙这次写的文章,主要有2个例子,一个是普通写法写的,另外一个是基于面向对象写的。