使用puppeteer爬取网页数据实践小结

简单介绍Puppeteer

Puppeteer是一个Node库,它通过DevTools协议提供高级API来控制Chrome或Chromium。Puppeteer默认以无头方式运行,但可以配置为有头方式运行。Puppeteer中文”木偶”,很贴切,它可以使用node程序来模拟人操作浏览器的行为,比如点击某个按钮等。

Puppeteer可以做什么

在浏览器中手动执行的大多数操作都可以使用Puppeteer完成!例如:

  • 生成页面的屏幕截图和PDF。
  • 抓取SPA(单页面应用程序)并生成预渲染内容(即“SSR”(服务器端渲染))。
  • 自动化表单提交,UI测试,键盘输入等。
  • 创建最新的自动化测试环境。使用最新的JavaScript和浏览器功能直接在最新版本的Chrome中运行测试。
  • 捕获时间线跟踪 您的网站,以帮助诊断性能问题。
  • 测试Chrome扩展程序。

继续阅读“使用puppeteer爬取网页数据实践小结”

ECMAScript6新特性及ES5对比整理

这里整理ES6新特性以及跟ES5的对比用法

1.const 常量定义

const URL="https://zhangxuefei.site";

定义的常量不能被直接赋值修改,但是如果a=URL,那么a的值是可以修改的,如果PI是一个引用类型,那么对a的修改也会影响到URL

ES5定义如下:

Object.defineProperty(typeof global==="object"?global:window,"URL",{
 value:"https://zhangxuefei.site",
 enumerable:true,
 writable:false, //不能赋值
 configurable:false //不能delete
 });

 URL=2;
 console.log(URL);//https://zhangxuefei.site

继续阅读“ECMAScript6新特性及ES5对比整理”

正则小贴士(匹配URL,中文等)

匹配中文:[\u4E00-\u9FD5] 点击这里获取官网中文编码表

 

匹配一段文本中的URL

这个是群里面有人提的问题,我也试试。确实写这个花了两天时间琢磨。需求大概是这样的:

待匹配的文本如:“匹配URLhttps://zhangxuefei.site以及zhangxuefei.tophttp://www.zhangxuefei.top以及zhangxuefei.top/a以及zhangxuefei.top/a/b.html以及zhangxuefei以及https://zhangxuefei.site/a以及https://zhangxuefei.site/a/b.html以及//zhangxuefei.top/a/b.htmlhttps://zhangxuefei.top/等等” 继续阅读“正则小贴士(匹配URL,中文等)”

JavaScript基础之九(toString,toJSON,valueOf)

javascript有几个非常重要的方法,这些方法是被所有的对象继承的,我们定义的对象不需要再去实现它们,必要时可以重写,并且有的方法会在必要时自动被javascript解析器调用,本文说说它们。

toString:返回一个字符串,代表当前的对象。在字符串环境下会自动被调用。代码说明:

继续阅读“JavaScript基础之九(toString,toJSON,valueOf)”

JavaScript点滴积累之Object.defineProperty用法(错误A property cannot both have accessors and be writable or have a value)

Object.defineProperty(obj, prop, descriptor):给对象定义属性,或者修改对象的属性,并且返回该对象。对象接收三个参数:对象,属性名,属性描述(限定)。

1.descriptor参数必须是一个对象类型,并且属性可以分为三类(必须,数据,可访问性),分别如下: 继续阅读“JavaScript点滴积累之Object.defineProperty用法(错误A property cannot both have accessors and be writable or have a value)”