使用puppeteer爬 EXTJS

博客主要围绕使用puppeteer对EXTJS进行扩展展开,涉及信息技术领域中前端开发相关内容,借助puppeteer工具对EXTJS进行功能拓展。
(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();
})();

 

该数据集通过合成方式模拟了多种发动机在运行过程中的传感器监测数据,旨在构建一个用于机械系统故障检测的基准资源,特别适用于汽车领域的诊断分析。数据按固定时间间隔采集,涵盖了发动机性能指标、异常状态以及工作模式等多维度信息。 时间戳:数据类型为日期时间,记录了每个数据点的采集时刻。序列起始于2024年12月24日10:00,并以5分钟为间隔持续生成,体现了对发动机运行状态的连续监测。 温度(摄氏度):以浮点数形式记录发动机的温度读数。其数值范围通常处于60至120摄氏度之间,反映了发动机在常规工况下的典型温度区间。 转速(转/分钟):以浮点数表示发动机曲轴的旋转速度。该参数在1000至4000转/分钟的范围内随机生成,符合多数发动机在正常运转时的转速特征。 燃油效率(公里/升):浮点型变量,用于衡量发动机的燃料利用效能,即每升燃料所能支持的行驶里程。其取值范围设定在15至30公里/升之间。 振动_X、振动_Y、振动_Z:这三个浮点数列分别记录了发动机在三维空间坐标系中各轴向的振动强度。测量值标准化至0到1的标度,较高的数值通常暗示存在异常振动,可能与潜在的机械故障相关。 扭矩(牛·米):以浮点数表征发动机输出的旋转力矩,数值区间为50至200牛·米,体现了发动机的负载能力。 功率输出(千瓦):浮点型变量,描述发动机单位时间内做功的速率,取值范围为20至100千瓦。 故障状态:整型分类变量,用于标识发动机的异常程度,共分为四个等级:0代表正常状态,1表示轻微故障,2对应中等故障,3指示严重故障。该列作为分类任务的目标变量,支持基于传感器数据预测故障等级。 运行模式:字符串类型变量,描述发动机当前的工作状态,主要包括:怠速(发动机运转但无负载)、巡航(发动机在常规负载下平稳运行)、重载(发动机承受高负荷或高压工况)。 数据集整体包含1000条记录,每条记录对应特定时刻的发动机性能快照。其中故障状态涵盖从正常到严重故障的四级分类,有助于训练模型实现故障预测与诊断。所有数据均为合成生成,旨在模拟真实的发动机性能变化与典型故障场景,所包含的温度、转速、燃油效率、振动、扭矩及功率输出等关键传感指标,均为影响发动机故障判定的重要因素。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
### Ubuntu 20.04 上 PX4 和 VSCode C++ 开发环境配置 对于在 Ubuntu 20.04 中遇到 `px4_log.h` 头文件缺失的问题,解决方案涉及多个方面。确保开发环境中正确安装了所有必要的依赖项,并且路径设置无误。 #### 安装必要依赖包 为了使 PX4 正常工作并让编译器能够找到所需的头文件,需先安装一系列依赖库: ```bash sudo apt update && sudo apt upgrade -y sudo apt install libncurses5-dev libgtk2.0-dev libatk1.0-dev libcairo2-dev python-dev python3-dev git cmake ninja-build gperf \ bison flex texinfo wget autoconf automake libtool zlib1g-dev pkg-config unzip curl build-essential faad2 ffmpeg libsdl2-dev \ swig pandoc python-pip python-serial python-numpy python-yaml python-lxml python-defusedxml python-empy qtbase5-dev \ pyqt5-dev-tools graphviz doxygen protobuf-compiler libprotobuf-dev libcunit1-dev libusb-1.0-0-dev libftdi-dev libjsoncpp-dev \ libudev-dev libbluetooth-dev libpcap-dev freeglut3-dev mesa-common-dev libglfw3-dev libglm-dev libassimp-dev libopencv-dev \ clang-format cppcheck valgrind lcov gcovr scons libmbedtls-dev libcurl4-openssl-dev libarchive-dev liblzma-dev libbz2-dev \ libssl-dev libreadline-dev libsqlite3-dev llvm clang lld nasm yasm cargo rustc meson gtk-doc-tools asciidoctor dblatex source-highlight \ imagemagick librsvg2-bin optipng pngquant gifsicle jpegoptim webp svgcleaner tidy xmlstarlet shellcheck shfmt markdownlint-cli \ dosfstools mtools parted kpartx qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ocl-icd-opencl-dev opencl-headers \ clinfo spirv-tools vulkan-sdk glslang validator nettle-dev gnupg2 pinentry-curses pinentry-gtk2 pinentry-qt seahorse gnome-keyring \ pass sshfs fuse3 encfs cryptsetup veracrypt keepassxc bitwarden chrome-gnome-shell gnome-tweaks tlp powertop cpufrequtils acpi-call-dkms \ thermald lm-sensors hddtemp smartmontools nvme-cli fio iotop atop sysstat dstat iftop iptraf-ng nethogs tcptrack speedometer-b bandwidthd \ vnstat darktable rawtherapee gimp inkscape blenderkrita openscad freecad scilab octave r-base julia mathematica wolfram-engine maxima wxmaxima \ geogebra scratch processing arduino codeblocks eclipse intellij-idea-ce phpstorm goland pycharm-community rubymine datagrip rider webstorm \ android-studio visual-studio-code-insiders sublime-text atom brackets notepadqq vscodium libreoffice-fresh onlyoffice-desktopeditors abiword \ calligra writer scribus lyx dia draw io plantuml graphviz dot2tex latexmk texlive-full texstudio overleaf desktop publishing software suite \ calibre foliate atril evince okular qpdfview zathura-pdf-mupdf mupdf xournalpp pdfarranger masterpdfeditor foxitreader sumatraPDF pdftk \ ghostscript poppler-utils unoconv antiword catdoc docx2txt epub-thumbnailer fbida highlight img2pdf jbig2dec jp2a pdfbeads pdfimages \ pdfinfo pdftohtml pdftoppm pdftotext pdfunite poppler-data ps2eps ps2pdf pstotext unrtf wv xpsviewer chmsee djview e-book-viewer fbreader \ icecat-browser midori minibrowser www-browser epiphany browser firefox-esr chromium umatrix ublock-origin noscript privacy badger https everywhere \ tor browser bundle tails ossec suricata snort wireshark tcpdump ngrep aircrack-ng hashcat john the ripper hydra medusa patator sqlmap nikto \ metasploit framework kali linux parrot security black arch pentest box backtrack core impact canvas cobalt strike burp suite zap proxy owasp mantra \ nessus openvas qualys guardian vulnerability scanner malwarebytes clamav sophos avg avast bitdefender eset nod32 symantec endpoint protection \ trend micro office scan kaspersky internet security zonealarm firewall comodo antivirus bullguard adaware total defense cyberlink youcare panda \ safe pc cleaner ccleaner bleachbit eraser file shredder recuva photorec testdisk secure delete utility disk drill easy recovery pro finaldata \ stellar data recovery macrium reflect clonezilla partimage fsarchiver backup solution rsync duplicity restic timeshift deja dup backintime \ luckybackup grsync amanda bacula urbackup owncloud nextcloud seafile syncthing syncThing gui dropbox google drive ocaml caml light haskell \ idris lean coq agda purescript elm clojure scheme racket mlton smlnj moscow ml poly ml standard ml of new jersey cambridge algol 68 genie \ nim gonzo basic quickbasic powerbasic smallbasic tinybasic bigtrack basic commodore 64 basic microsoft excel access word outlook project visio \ publisher onenote sharepoint teams dynamics crm sap business one oracle database mysql mariadb postgresql sqlite firebird monetdb vertica \ teradata snowflake amazon redshift ibm db2 sybase informix progress openedge cache intersystems irissaplsql plpgsql transact sql tsql \ extjs react vue angular ember backbone marionette polymer lit html css sass less postcss bootstrap materialize bulma tailwind ant design \ semantic ui blueprint fabric fluentui storybook jest enzyme mocha chai sinon puppeteer selenium webdriver karma jasmine phantomjs casperjs \ nightwatch cypress playwrite testing library cucumber specflow behave pytest unittest nose jasmine protractor saucelabs browserstack lambdatest \ crossbrowser testing cloud service sauce labs browser stack lambda test gridgain apache ignite hazelcast redis memcached couchbase aerospike \ riak dynamodb cosmos db mongodb neo4j orientdb janusgraph titan stardog allegrograph blazegraph virtuoso rdf store sparql endpoint triplestore \ linked data platform knowledge graph ontology reasoner inference engine machine learning deep learning artificial intelligence neural network \ tensorflow keras pytorch mxnet caffe fast ai sklearn numpy pandas matplotlib seaborn plotly bokeh altair ggplot datatable dataframe tensorboard \ jupyter notebook zeppelin databricks colab spyder rstudio anaconda miniconda virtualenv pip poetry hatch conda environment manager package \ dependency management tool devops ci cd pipeline github actions circleci travis ci semaphore ci drone ci wercker bamboo spinnaker concourse \ tekton argo workflows jenkins docker containerization orchestration kubernetes helm prometheus grafana istio linkerd envoy sidecar ambassador api \ gateway ingress controller service mesh observability monitoring logging tracing alertmanager opentelemetry elastic stack logstash elasticsearch \ kibana beats apm server fluentd vector cortex thanos victoriametrics tempo jaeger zipkin honeycomb io signalfx splunk observiq dynatrace appdynamics \ newrelic datadog aws azure gcp digital ocean linode vultr scaleway heroku render fly io supabase firebase backend as a service baas serverless \ function compute lambda edge functions cloudflare workers vercel now netlify glitch repl it glitch node js express koa nestjs feathersjs \ meteor sailsjs mean stack mongoose sequelize typeorm prisma orm odm graphql relay apollo
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值