本文内容主要了解加速乐生成,通过Java语言调用JavaScript引擎模拟浏览器行为。
一、前文
因为学习过程中需要数据的原因接触到爬虫,在学习和实践的过程遇到了特别有趣的事。特此记录。直接开始吧!
整个爬取的过程:
(1)分析浏览器请求。
(2)使用Postman模拟用户请求。
(3)通过HttpClient编写请求头和参数发送GET、POST的请求。
(4)通过Jsoup解析器解析返回的页面。
(3)持久化。
二、处理过程
通过Firefox分析请求。
观察Cookie信息。
发现问题当第一次请求,请求头就携带Cookie。通过直接返回了Html页面。
使用Postman模拟请求,根据返回页面的请求头自行尝试构建请求头和参数。
发现当设置__jsluid_h和__jsl_clearance可正常返回页面信息。分析可得这两个值是鉴别用户行为的关键。尝试不设置Cookie直接请求。
在通过Postman模拟请求的时候发现直接请求返回响应并设置了__jsluid_id的Cookie值并返回一段js代码。然而缺少__jsl_clearance。通过分析返回的js代码。发现内有__jsl_clearance值。__jsl_clearance这个字段很显然是返回的内容js通过浏览器生成。
通过编译器格式化js代码可视化,先看结果。
主要分析红框中的内容,并不是太难理解。不断的循环知道出现可执行。将其输出。
借用特征码的思路。先上代码。
<script>
var x = "@match@challenge@3@@@setTimeout@@String@for@@@@false@pathname@JX@0@@RegExp@G@f@@document@@@@JgSe0upZ@1@Expires@fromCharCode@@@10@@@@@@8@toString@@split@a@586@19@1500@vYg@0xFF@0xEDB88320@Sat@@cookie@e@D@https@g@@@createElement@captcha@@Aug@c