python爬虫-携程-eleven参数
携程-eleven分析
一、eleven的位置
通过对旁边栈的分析,它是在另一个js文件中调用的。那个js文件是一个自调用的函数,所以我们可以直接copy下来,用浏览器执行看看
执行运行是会报错的,
undefind没有call属性
经过调试发现,报错这里是想调用window下面的某一个函数,也就是这个对象属性key为29对应的值
所以我们需要将这个函数添加进去
我们再运行一次,这样就不会报错了
虽说能够成功运行,不报错,但是本地生成的eleven的值是跟携程官网生成的eleven是不一样的
三、解决方案
这段js代码,肯定是对某一些做了判断,我当时猜想过cookie,因为我就是在浏览器中运行,浏览器的一些标识肯定都是一样,又区别的地方应该就是cookie吧。我就就一步一步的调试这这一大段js代码,讲真确实让人看得头疼
刚开始看确实没多少耐心,点的也很快,也没什么技巧。
有一个老哥说,他能在浏览器执行那段js代码,并且与携程官网的参数能对上。他是新建一个窗口浏览器,通过控制台将js代码copy,再进行调用,我试了下真的可以。我就很奇怪了,那就排除跟cookie有关了。
后面我还是继续调试那段js代码(我是在携程网站进行调试的),发现那段js调用了
3这个位置的函数,是一个
require函数,每次调用都抛了异常,它有异常捕捉的代码,所以不会崩掉。
我再调试着本地代码,发现我是没有这个函数的,我再去新建一个浏览器窗口,window.require输出为一个函数,这下终于知道哪里不对了
所以我只需要在
3那个位置添加这个函数就行了,上面也说过,携程网站它调用这个函数都是抛异常的,所以我们这样写就好了。
为了防止巧合,我试了很多次,本地和线上生成的eleven都只差一位,意思是说他肯定还对某一项做了检测。
四、补充
需要注意的几个函数,不是说其他函数不重要,也很重要,但这个比较关键。
五、node环境
再弄node环境之前,必要浏览器执行后的eleven要和携程网的对得上,node环境缺什么,报什么错,再跟本地浏览器进行调试。过程肯定不是一帆风顺,但是解出来的时候,会莫名激动
- Python—爬虫之Network,XHR,json & 带参数请求数据(爬取歌单、歌词)
- python携程爬虫之逆向混淆js
- python进阶之HTML报头参数详解(爬虫)
- 爬虫Get请求参数匹配得到字典类型格式(Python)
- 神箭手云爬虫-爬取携程【国际】航班/机票信息-利用python解析返回的json文件将信息存储进Mysql数据库
- Java调用Python并传递参数(爬虫8)
- 遇到问题--python--爬虫--urllib的post参数类型错误--传输json格式
- Python爬虫爬取酒店评价(携程)
- python爬虫:传递URL参数学习笔记
- 【Python爬虫】按时爬取京东几类自营手机型号价格参数并存入数据库
- python爬虫获取淘宝天猫商品详细参数
- Python爬虫:Scrapy优化参数设置
- python爬取携程和蚂蜂窝的景点评论数据\python爬取携程评论数据\python旅游网站评论数据爬虫
- 携程反爬中的Eleven参数-反爬与反反爬的奇技淫巧
- python爬虫,接口是post请求,参数是request payload 的形式,如何传参
- python爬虫之请求(url)构造 —— 寻找参数来源以及中文编码
- Python爬虫:url中带字典列表参数的编码转换方法
- python3爬虫post请求传递参数获取有道翻译结果
- python 爬虫必备工具箱之----Headers参数一键转换
- python tips - 注意函数参数的默认值-默认参数-可选参数