携程反爬中的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参数,携程还是在代码了下了不少毒的。

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

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

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

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

1