携程反爬中的Eleven参数-反爬与反反爬的奇技淫巧

大家好,先回顾下之前的文章:

爬虫被封IP了怎么办-反爬与反反爬的奇技淫巧

爬虫中的验证码识别-反爬与反反爬的奇技淫巧

爬虫中Cookie的伪造(非登录)-反爬与反反爬的奇技淫巧

爬虫与诡异的字体-反爬与反反爬的奇技淫巧

爬虫与汽车之家的Css:Content-反爬与反反爬的奇技淫巧

爬虫与CloudFlare邮箱加密(cfemail)-反爬与反反爬的奇技淫巧

今天我们要聊点什么呢,之前说要聊去哪儿的,不过暂且咱们再放一放,先聊一聊去哪儿的干爹携程吧,上次我记得看了携程工程师霸气回应说懂爬虫的来去哪儿,懂反爬的来携程。我觉得特别棒,这种开放的心态和自信,正是一个开放的互联网环境所需要的。

所以今天这节课虽然咱们以携程为例,但是我们还是以学习的目的为主,因此我不会把完整的代码放出来,大家掌握思路,拿到渔网比直接copy代码有用的多。

上篇文章用邮箱加密给大家演示了爬虫中简单的JS对抗,今天这节课咱们就用携程的Eleven参数来演示下复杂的JS对抗。

对了,这个题图,主要是因为携程给他们这个反爬的JS起了一个名字叫oceanball-海洋球,不明觉厉啊。

好了,言归正传。做过携程酒店爬虫的朋友,估计都研究过这个eleven参数,这个参数到底是哪里的呢,我们先看下页面请求:

就是这样一个页面,打开一个酒店页面会发现实际的酒店房型列表是一个ajax请求,如下:

http://hotels.ctrip.com/Domestic/tool/AjaxHote1RoomListForDetai1.aspx?psid=&MasterHotelID=441351&hotel=441351&EDM=F&roomId=&IncludeRoom=&city=2&showspothotel=T&supplier=&IsDecoupleSpotHotelAndGroup=F&contrast=0&brand=0&startDate=2017-08-28&depDate=2017-08-29&IsFlash=F&RequestTravelMoney=F&hsids=&IsJustConfirm=&contyped=0&priceInfo=-1&equip=&filter=&productcode=&couponList=&abForHuaZhu=&defaultLoad=T&TmFromList=F&eleven=c4350e460862b69d9d76724e1325a0a54ef23c2e0648636c855a329418018a85&callback=CASuBCgrghIfIUqemNE&_=1503884369495

前面咱说过,出于对反爬工程师工作的尊重,我们今天的文章不去完整介绍整个携程爬虫的做法,其实除了这eleven参数,携程还是在代码了下了不少毒的。

爬虫与CloudFlare邮箱加密(cfemail)-反爬与反反爬的奇技淫巧

大家好,今天我们终于要进入我们激动人心的反爬界最重量级选手–Javascript加密混淆,我们先来回顾之前叨逼叨了5篇文章的反爬经验:

爬虫被封IP了怎么办-反爬与反反爬的奇技淫巧

爬虫中的验证码识别-反爬与反反爬的奇技淫巧

爬虫中Cookie的伪造(非登录)-反爬与反反爬的奇技淫巧

爬虫与诡异的字体-反爬与反反爬的奇技淫巧

爬虫与汽车之家的Css:Content-反爬与反反爬的奇技淫巧

大家好,我又要食言了,总盯着去哪儿挺没意思的,今天咱们先聊另外一个老朋友-汽车之家。

先上广告,土豪朋友不想写代码的,可以直接使用我们的汽车之家论坛爬虫:

汽车之家论坛采集爬虫-神箭手云

给新朋友的之前的文章列表:

爬虫被封IP了怎么办-反爬与反反爬的奇技淫巧

爬虫与诡异的字体-反爬与反反爬的奇技淫巧

本来吧,这节课准备写我自己期待很久的Javascript对抗的,但是发现上节课讲了偏技术的Cookie感觉反响一般,所以还是准备再插几节闲聊猎奇型的反爬技巧,再到最终的Javascript吧,放最后一篇文章写,不然我害怕写完那篇,就写不动了。

好了,同样前几篇文章链接:

爬虫被封IP了怎么办-反爬与反反爬的奇技淫巧

爬虫中的验证码识别-反爬与反反爬的奇技淫巧

爬虫中Cookie的伪造(非登录)-反爬与反反爬的奇技淫巧

爬虫中Cookie的伪造(非登录)-反爬与反反爬的奇技淫巧

两篇文章下肚,各位看官感觉如何。避免新同学不知道之前的文章:

爬虫被封IP了怎么办-反爬与反反爬的奇技淫巧

爬虫中的验证码识别-反爬与反反爬的奇技淫巧

前两篇文章算是讲了最常规的两种反爬,本篇文章理论上应该说说登录,因为基本上这三个反爬套路结束之后,其他都是小众了。不过登录这个东西真的没太多可讲的,因为严格来说登录并不是反爬,只是一种保护手段,后面有时间简单说说吧。

今天咱们要聊的这位主角跟登录倒也有点关系。先来简单摘抄一段Cookie的描述:

Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265

12