node request请求如何抓包+js正则+htmlCollection

一样的使用charles进行抓包

charles中配置:

http代理地址为:http://127.0.0.1:8888
https代理地址为:http://127.0.0.1:8989

如下图
img

node里面需要使用代理的时候添加
process.env.https_proxy = “http://127.0.0.1:8888“;
process.env.http_proxy = “http://127.0.0.1:8989“;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = “0”;

补充下charles如何抓包https
安装证书
img

信任证书
img

关于手机中配置charles的https代理,步骤如下

  • 真机测试在 iOS 使用电脑上的http代理(172.23.12.7:8888)
  • 设备上使用Safari打开这个网址并安装证书 证书安装

如果是ios10.3以下,这个时候 你可以看到已经可以抓包解析了,但是10.3以上还需在设置下

设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.
img

js正则

前瞻断言
(?=exp) 顺序肯定环视,表示所在位置右侧能够匹配exp
(?!exp) 顺序否定环视,表示所在位置右侧不能匹配exp
后瞻断言
(?<=exp) 逆序肯定环视,表示所在位置左侧能够匹配exp
(? < !exp) 逆序否定环视,表示所在位置左侧不能匹配exp

例子:
/[^\s]+(?=ing)/g.exec(‘downing to do’);
[“down”, index: 0, input: “downing to do”]

htmlCollection
简言之:
var a = document.getElementsByClassName(‘test’)
var b = document.querySelectorAll(‘.test’)

a 会随 DOM 更改变动, b 不会

demo

htmlCollection

childNodes

querySelectorAll

nodelist

附带:

children和childNode区别
children是Element的属性,childNodes是Node的属性
img

element继承了node类,element是node多种类型中的一种,即当NodeType为1时Node即为ElementNode,另外Element扩展了Node,Element拥有id、class、children等属性。