当前位置: 首页 > news >正文

帮传销组织做网站番禺电商网站建设

帮传销组织做网站,番禺电商网站建设,小程序制作价格,wordpress不显示作者前两篇文章《Node.js和Puppeteer进行Web抓取的简单使用》 和《Puppeteer结合Jest对网页进行测试》已经了解到Puppeteer大致可以做点什么事情#xff0c;之前提到过最终自动化需要一个数组配置。这篇文章将会简单是一个读取配置文件实现自动化的脚本。 脚本 就拿《Node.js和P…前两篇文章《Node.js和Puppeteer进行Web抓取的简单使用》 和《Puppeteer结合Jest对网页进行测试》已经了解到Puppeteer大致可以做点什么事情之前提到过最终自动化需要一个数组配置。这篇文章将会简单是一个读取配置文件实现自动化的脚本。 脚本 就拿《Node.js和Puppeteer进行Web抓取的简单使用》 代码举例 const puppeteer require(‘puppeteer’); let scrape async () { // 打开一个浏览器const browser await puppeteer.launch();// 新建一个页面const page await browser.newPage(); // 打开urlawait page.goto(‘https://www.johancruijffarena.nl/calendar.htm); // 针对某个元素 获取数据const result await page.evaluate(() {var data [];var tables document.querySelectorAll(‘table’);data tables.length; return data;}, ); // 关闭浏览器browser.close();return result } scrape().then((value) {console.log(value); });这个就是日常mk代码逻辑如果要转换配置化那就先理清步骤然后对配置数据建模。 开始构建数据、纯函数 从代码看出来可以列出步骤如下 步骤1: 打开一个浏览器 步骤2: 新建一个页面 步骤3: 打开url 步骤4: 针对某个元素 获取数据 步骤5: 关闭浏览器 可以看出每个步骤都是一个操作类型这个时候数据里面可以定一个操作类型的keynodeType {nodeType: any }步骤1 因为一个流程只操作一个浏览器因此配置数据可以省略这个步骤当程序运行时默认执行这个步骤就好了同时帮步骤1操作提取一个函数(尽量保证是一个纯函数后续会有篇幅), const getBrowser async () {const browser await puppeteer.launch();return browser }步骤2和步骤3 步骤2和步骤3可以合并成一个步骤打开一个页面那必须得跳转url吧那么可得到一个配置数据 {nodeType: start,url: https://www.johancruijffarena.nl/calendar.htm },创建一个只打开页面的纯函数 const runNodeStart async (arg) {const { browser, task } argconst { url } taskconst page await browser.newPage()await page.goto(url, {waitUntil: domcontentloaded,});return page }步骤4 该操作也得定义nodeType告诉程序该做什么事情因为需要检索元素需要关键字可以设置selector为key {nodeType: pick,selector: table }函数 const getPick async (arg) {const { task } argconst { selector } taskconst result await page.evaluate(() {var data [];var tables document.querySelectorAll( selector );data tables.length; return data;}, ); return result }步骤5: 同理可以得到一个配置数据 {nodeType: close, },一个函数 const runClose async (arg) {const { browser, task, page } argawait browser.close();return false }配置数据如下 const datas [ {. // 打开页面 nodeType: start,url: https://www.johancruijffarena.nl/calendar.htm }, { // 获取数据nodeType: pick,selector: table }, { // 关闭浏览器nodeType: close, }, ]MK代码实现 其实一看数据配置就是一个数组只要我们遍历这个数组就可以完成我们配置自动化的效果。for循环简单粗暴: const main async () { const browser await getBrowser() const len datas.length let page null let pickData for (let i 0; i len; i) {const { nodeType } datas[i]if (nodeType start) {const data await runNodeStart( { browser, task: datas[i]})page data.page} else if (nodeType pick) {pickData await getPick( { browser, task: datas[i], page} )} else if (nodeType close) {await runClose({browser})} } } 当然这块代码还是有很大的优化空间必须实现功能较全的自动化通过for、if、else if去实现代码不太优雅各位有啥想法不优雅的优化方式 相关源码
http://www.zqtcl.cn/news/378637/

相关文章:

  • 如何用域名做邮箱 网站站长工具5g
  • 威海 医院网站建设宝安专业网站设计公司
  • 营销企业网站建设步骤建筑 企业官网设计
  • 网站建设的内容网站怎么做视频的软件
  • 大型网站多少钱企业咨询管理是干嘛的
  • 陕西建设银行网站小企业网站建设公司
  • linux下网站开发计算机网络技术专业主要学什么
  • 长沙网站维护公司建个门户网站
  • 做采集网站难不做科技的网站
  • 中小微企业服务平台seo怎么提升关键词的排名
  • 优秀企业网站欣赏店名设计wordpress文章列表添加字段
  • 有哪些做软件的网站服务器安装WordPress没有权限访问
  • app开发和网站开发公司网站怎么做百度竞价
  • 医疗机构网站备案网站建设面试常见问题
  • 建设网银登录网站国内欣赏电商设计的网站
  • 自适应网站优点缺点网站上的在线答题是怎么做的
  • 查询单位信息的网站免费学编程的网站有哪些
  • 建设企业网站进去无法显示wordpress 在线课程
  • 博客型网站建设广州网站建设如何做
  • 网站导航栏全屏怎么做万年网站建设
  • flash源码网站百度关键词价格
  • 个人网站如何发布怎么做记步数的程序到网站
  • 石家庄网站制作公司排名前十可视化网站开发工具有哪些
  • 网站个人博客怎么做杭州网站改版公司电话
  • 烟台北京网站建设公司中国建筑信息资讯网
  • 硬盘做网站空间高端网站设计杭州
  • 南昌网站建设方案网站建设需求分析班级
  • 汉阳做网站关键词站长工具
  • 做海报图片的网站营销软件
  • 能先做网站再绑定域名吗石家庄公司建设网站