项目着急上线,但是reese84短时间又无法破解,花钱买接口成本又太高!
既然如此,那么我们不如换个思路搞!
就拿海外的某航司曼谷航空来说吧
Bangkok Airways - Asia's Boutique Airline - Bangkok Airways
我们搜索 BKK(曼谷)到SIN(新加坡)的单程机票 日期随意
紧接着发现我们要的数据接口,就是这个了:
再看看cookie,就是我们熟悉的reese84盾了
URL也有一个加密的参数jsessionid
那么怎么办呢 短时间破盾有难 项目催的紧张!那么我们换个思维来看,这几个URL的curl的加密参数的有效期是多少!
经过测试,如果是单线程15分钟左右,并发不行 ,15分钟后ip会被风控!
于是我们优化了最佳的方法!
用自动化的方法模拟点击查询,笔者习惯用DrissionPage框架
讲cookie和jsessionid直接保存在redis里面!
然后启动另一个程序开启爬虫,从redis里面提取需要的参数
但是15分钟后切ip怎么办 好办的很 目前国内的VPS服务器 4h4g的一台也就一百多块钱一个月左右,每间隔10分钟切一次ip,然后自动化提取一次参数存入redis,爬虫程序单线程我们计算过,一次爬虫在2-3秒左右,就按2.5秒算,一分钟可以爬20次数据,每10分钟切一次ip,切ip按照10秒算,十分钟可以爬虫24*9+20=236次
按照航司的价格爬取,一次全站采集30天的全航班数据,按照航班管家,曼谷航司共47条航线
那么计算下来30*47=1410次爬虫
如果是需要在半个小时采集一轮的话,目前来看,两台国内的vps服务器即可,成本在300元左右!
各方面成本,不管是时间,还是服务器和ip的成本,都是效率最高的方法!
而且这种方法,博主测试了很多校验不严的shape,阿卡迈的航司网站,皆可用!
毕竟那些需要海外ip的网站,一个月下来,ip成本都老鼻子钱了,而且破解太难,太要时间