现在的网页代码搞得越来越复杂,除了使用vue等前端框架让开发变得容易外,主要就是为了防爬虫,所以写爬虫下的功夫就越来越多。攻和防在互相厮杀中结下孽缘却又相互提升着彼此。
本文就JS反爬虫的策略展开讨论,看看这中间都有着怎样的方法破解。
JS逆向方法论-反爬虫的四种常见方式
一 、JS写cookie
我们要写爬虫抓某个网页里面的数据,无非是打开网页,看看源代码,如果html里面有我们要的数据,那就简单了。用requests请求网址得到网页源代码然后解析提取。
等等!requests得到的网页是一对JS,跟浏览器打开看到的网页源码完全不一样!这种情况,往往是浏览器运行这段JS生成一个(或多个)cookie再带着这个cookie做二次请求。服务器那边收到这个cookie就认为你的访问是通过浏览器过来的合法访问。
其实,你在浏览器(chrome、Firefox都可以)里可以看到这一过程。首先把Chrome浏览器保存的该网站的cookie删除,按F12到Network窗口,把“preserve log”选中(Firefox是“Persist logs”),刷新网页,这样我们就可以看到历史的Network请求记录。比如下图: