爬虫还是保持userAgent一致来得稳
文章目錄
一般反爬在生成加密参数的时候,都会取navigator里的userAgent属性,然后生成加密参数。在使用requests库的时候,爬虫也会设置下headers里的User-Agent值。但很多时候爬虫并没有保持这两个值一致。
在使用补环境生成参数的时候,如果要支持动态传入userAgent,就得在调用参数生成接口的时候增加userAgent参数,并传到补环境代码里设置navigator.userAgent,爬虫偷懒的时候就会省掉这一步,直接固定写死navigator.userAgent。
还有在使用jsdom补环境生成参数的时候,会错误设置userAgent。如果像以下代码一样设置userAgent就是错的
1 | const { JSDOM } = require('jsdom'); |
jsdom里正确的做法是使用ResourceLoader设置userAgent
1 | const jsdom = require("jsdom"); // 引入 jsdom |
有一些反爬在不严格的时候即便userAgent不一致也让爬虫通过,但风控严格的时候userAgent不一致又不让爬虫通过,让爬虫摸不着头脑,得排查老半天。所以爬虫为了稳妥起见,还是得保持navigator里的userAgent属性和headers里的User-Agent值一致。