(async () => {// 载入配置文件并使用JSON.parse()解析  var config = JSON.parse(fs.readFileSync('./config.json').toString());console.log("(1) Config Loaded...");//  从EXCEL获取数据var scores= await GetDataFromXlsx("score.xlsx",true,["I"]);// 分析数据console.log(scores);let sc= [];for (s of scores) {sc.push(parseInt(s.I));}console.log(sc);var arr=sc;const browser = await puppeteer.launch({headless: false});const page = await browser.newPage();// 登录await page.goto('http://172.16.0.7/'); await page.type("#txtZH",'xxxx');await page.type("#txtMM",'xxxxx');await page.click('#ext-gen24');await page.waitFor(1000);await page.goto('http://172.16.0.7/user/kcsjfx.aspx'); await page.waitFor(5000);//获取第一行数据,双击/*// 没有效果,EXTJS还没有解析var foo = await page.$$('#ext-gen25 > div.x-grid3-row.x-grid3-row-first > table > tbody > tr');console.log(foo);await  foo.click({ clickCount: 2 }) ;  */var s= await page.waitForSelector('#ext-gen25 > div.x-grid3-row.x-grid3-row-first > table > tbody > tr');var tj={"avg":avg(sc).toFixed(0).toString(),"max":max(sc).toString(),'num':arr.length.toString(),"passed":passed(arr).toString(),"passedPercent":((passed(arr)/arr.length)*100).toFixed(0).toString(),"a0":countNum(arr,0,10).toString(),"a1":countNum(arr,10,20).toString(),"a2":countNum(arr,20,30).toString(),"a3":countNum(arr,30,40).toString(),"a4":countNum(arr,40,50).toString(),"a5":countNum(arr,50,60).toString(),"a6":countNum(arr,60,70).toString(),"a7":countNum(arr,70,80).toString(),"a8":countNum(arr,80,90).toString(),"a9":countNum(arr,90,100).toString(),"b0":(countNum(arr,0,10)/arr.length*100).toFixed(0).toString(),"b1":(countNum(arr,10,20)/arr.length*100).toFixed(0).toString(),"b2":(countNum(arr,20,30)/arr.length*100).toFixed(0).toString(),"b3":(countNum(arr,30,40)/arr.length*100).toFixed(0).toString(),"b4":(countNum(arr,40,50)/arr.length*100).toFixed(0).toString(),"b5":(countNum(arr,50,60)/arr.length*100).toFixed(0).toString(),"b6":(countNum(arr,60,70)/arr.length*100).toFixed(0).toString(),"b7":(countNum(arr,70,80)/arr.length*100).toFixed(0).toString(),"b8":(countNum(arr,80,90)/arr.length*100).toFixed(0).toString(),"b9":(countNum(arr,90,100)/arr.length*100).toFixed(0).toString(),}console.log(tj);await  s.click({ clickCount: 2 }) ; //console.log(avg(sc).toFixed(1));var arr=scores;await page.type("#txtPJF",  tj.avg);//平均await page.type("#txtZGF",  tj.max);//最高await page.type("#txtZRS",  tj.num);//人数await page.type("#txtJGRS", tj.passed);//及格数await page.type("#txtJGL",  tj.passedPercent);//合格率//分数段page.$$eval("#Panel3 input[type=text]", (el,paramIn)=>{//console.paramIn;el[0].value=paramIn.tj.a0;el[1].value=paramIn.tj.a1;el[2].value=paramIn.tj.a2;el[3].value=paramIn.tj.a3;el[4].value=paramIn.tj.a4;el[5].value=paramIn.tj.a5;el[6].value=paramIn.tj.a6;el[7].value=paramIn.tj.a7;el[8].value=paramIn.tj.a8;el[9].value=paramIn.tj.a9;},{tj});/*page.$eval("#txtFSD7", (el,paramIn)=>{el.value=paramIn.tj.a7;},{paramIn});*//*相当于两次操作,页面自动在空值处增加0默认值;然后输入2位数,而输入框作为2位的长度限制,只能录入1位await page.type("#txtFSD0",'');await page.type("#txtFSD0",tj.a0, {delay: 1000});*///百分比page.$$eval("#Panel4 input[type=text]", (el,paramIn)=>{//console.paramIn;el[0].value=paramIn.tj.b0;el[1].value=paramIn.tj.b1;el[2].value=paramIn.tj.b2;el[3].value=paramIn.tj.b3;el[4].value=paramIn.tj.b4;el[5].value=paramIn.tj.b5;el[6].value=paramIn.tj.b6;el[7].value=paramIn.tj.b7;el[8].value=paramIn.tj.b8;el[9].value=paramIn.tj.b9;},{tj});// await browser.close();
})();

使用puppeteer爬 EXTJS相关推荐

  1. puppeteer爬取豌豆荚数据

    //数据仅测试用,如有侵权请联系本人处理 const puppeteer = require('puppeteer');// 等待3000毫秒const sleep = time => new ...

  2. puppeteer 爬取数据

    puppeteer我用到的有两种爬取方法 第一种是根据页面选择器去爬取对应的数据 第二种是根据接口去爬取 一 .以Facebook的广告页页面数据为例,我需要拿到对应的数据 const puppete ...

  3. Node.js + puppeteer爬取推特ChineseVirus評論(1)

    說到網絡爬蟲,大家第一時間想到的可能是python,但其實Node.js也十分適合用來爬蟲.爬蟲通常涉及大量請求,像推特這種由js/ajax动态生成的網頁更是必須等待數據加載完成才能進行爬取.Node ...

  4. puppeteer爬取豆瓣top250电影及详细信息

    const puppeteer = require('puppeteer'); const fs = require('fs');// 豆瓣top250电影 async function top250 ...

  5. Puppeteer爬取网页数据

    动机 希望可以从各大技术论坛抓取自己感兴趣的问题. 技术 puppeteer dotenv 详细设计 核心功能:使用puppeteer仿真用户在浏览器上的行为,操作DOM获取数据 快速启动:使用dot ...

  6. puppeteer 的PDD反爬经历

    使用puppeteer 爬取PDD数据时出现要求登录,以前是没有这问题的. 尝试多种方式如果: 变更UA 变更代理IP 变更Chromium版本(当然最终就是该问题的原因,但是因为版本跨度太大没有测试 ...

  7. 前端工程师的一大神器——puppeteer

    大家好,我是若川.欢迎加我微信 ruochuan12,长期交流学习.今天推荐神器puppeteer,我猜有挺多人不知道.文章不长,看完有空也可以试玩. 我18年也写过一篇puppeteer爬取生成pd ...

  8. pycharm查看html页面,pycharm爬取网页数据

    1 python环境的配置 1.1 安装python文件包,放到可以找到的位置 1.2 右键计算机->属性->高级环境设置->系统变量->Path->编辑->复制p ...

  9. 爬虫html转换成pdf,爬取html生成pdf

    首先看了这篇文章前端使用puppeteer 爬虫生成<React.js 小书>PDF并合并,发现最后的pdf没有书签,很难受,所以主要在此基础上加了加书签的功能. 爬去的示例网站为Reac ...

最新文章

  1. 完整恢复模式下的备份/恢复
  2. iBatis.Net系列(一)-简介
  3. 如何评价强gis与弱gis_什么是gis的简化解释
  4. Python小白的数学建模课-B3. 新冠疫情 SIS模型
  5. springboot系列四、配置模板引擎、配置热部署
  6. Python操作数据库遇到的问题
  7. Discuz常见小问题-如何关闭验证码
  8. windows下安装ubuntu16.04双系统的注意事项
  9. Android 调整控件位置和大小(以textView为例,并设置字体与背景颜色)
  10. dentry path_lookat dput
  11. 天语手机android 4.4.4,天语 touch 2 4.4.4 ROM刷机包 FIUI
  12. dsp调音一次多少钱_把手教你调音玩转DSP
  13. 面试官问你“有什么问题问我吗?”,你该如何回答? 1
  14. 微信小程序 + 腾讯位置服务SDK 实现路线规划
  15. python 录屏_《自拍教程70》Python adb一键录屏
  16. 基于servlet+jsp 个人博客系统
  17. 影响100年的营销启示 24个故事
  18. JS-一张纸折叠多少次可达到珠穆朗玛峰的高度
  19. 同时爱上一个男人的两个女人
  20. 最新火狐手机浏览器如何通过firefox修改UA

热门文章

  1. Confluence 6 复杂授权或性能问题
  2. docker-compose bug
  3. CString的部分实现剖析
  4. [译]Visual Studio 2008 Code Metrics
  5. Android平台根目录文件
  6. linux文件系统简介
  7. SpringBoot_02 Spring的Java配置方式
  8. Nmap在pentest box中的扫描及应用
  9. Rider首个发布候选版加入了性能提升特性
  10. OTA固件升级对于物联网设备的重要性