基本目录

  • 数据来源与获取方法
    • 数据来源
    • 网页分析
  • 实现效果
  • 完整代码与说明文档

数据来源与获取方法

数据来源

携程机票查询https://flights.ctrip.com/online/channel/domestic

网页分析

我们的目的是要爬取携程网中机票的价格,航班的起飞时间,降落时间,目的地,出发地,所乘做机型名称,航班号信息
第一步
首先通过浏览器开发者工具记录网络请求,并通过全局搜索得到起飞时间数据的请求头返回地址

其中请求头中的sign和transactionid为变化的状态,因此我们的方向就是分析sign和transactionid的变化规律并归纳出公式以便爬虫请求

我们进行逆向回推看看是哪里的设置改变了这两个参数,发现https://flights.ctrip.com/international/search/api/flightlist//round-tna0-cgq0?_=1&depdate=2022-12-01_2022-12-04&cabin=Y_S_C_F&containstax=1&v=0.18291690129031823
中的相应里有transactionid

从该地址中我们推测tna对应的是济南的三字码,cgq为长春的三字码,depdate=XXXX-XX-XX_XXXX-XX-XX为出发时间和返回时间,v=0.18291690129031823为时间戳刷新缓存(一般情况可以直接忽略)
接着我们查找sign的值,查到到最早出现sign的请求。但是没有出现关于sign的响应,因此初步断定sign的值是Js动态形成的

使用堆栈跟踪,在js代码中搜索sign,定位出现sign的位置,其中n的值赋给了sign,所以n的值的来源就是sign值的来源,n = sessionStorage.getItem(i)) || (n = (new a.a).update®.digest(‘hex’), sessionStorage.setItem(i,n)
其中sessionStorage为本地存储的键值对,get方法取键i为真,那么n为新new了一个对象把r进行md5并且以键值对(i,n)设置回sessionStorage
其中r是e.transactionID + t
那么t是
var n = e.departureCityCode,
r = e.arrivalCityCode,
a = e.departureDate;
t += n + r + a
departureCityCode是出发城市的三字码,arrivalCityCode是到达城市的三字码,departureDate是出发的日期

所以

实现效果



完整代码与说明文档

面包多:https://mbd.pub/o/bread/ZJabm5xp

pyqt5+mysql+多线程爬虫实现 python 携程机票爬虫 数据可视化相关推荐

  1. 干货 | 携程机票大数据架构最佳实践

    本文转载自 携程技术中心(ctriptech) 公众号,本文PPT请点击下面 阅读原文 获取 作者简介 许鹏,携程机票大数据基础平台Leader,负责平台的构建和运维.深度掌握各种大数据开源产品,如S ...

  2. python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化

    转自:http://www.jackyshen.com/2015/05/21/async-operations-in-form-of-sync-programming-with-python-yiel ...

  3. 干货 | CrateDb在携程机票BI的实践

    作者简介 Loredp,携程数据分析经理,关注大数据存储.大数据处理以及linux等领域. 一.前言 随着整个互联网流量红利进入末期,各大厂在着力吸引新客的同时,在既有客户群体的运营上也是煞费苦心,各 ...

  4. 预告:Intel、Hulu、阿里、京东、携程等大数据实战直播

    前言:由CSDN主办的SDCC 2017之大数据技术实战线上峰会将在CSDN学院举行.作为SD系列技术峰会的一部分,本次线上峰会秉承干货实料(案例)的内容原则,将邀请圈内顶尖的布道师.技术专家和技术引 ...

  5. python多线程调用携程,Python 协程,Python携程

    Python 协程,Python携程 协程 进程:操作系统中存在 线程:操作系统中存在 协程:是微线程 模块(greenlet) 协程不是一个真实存在的东西,是由程序员创造出来的 协程,是对一个线程分 ...

  6. python爬虫携程机票

    大半夜的来点干货,首先先让我得意一下,自学将近一个月python语言,学习网络爬取技术,从一个小白到半吊水大神,终于可以自己编写出爬取携程机票的脚本,可以根据自己输入始发地和到达地,日期,就可以爬取出 ...

  7. python爬取携程机票并发送过滤后的机票信息到指定邮箱

    0x0 前言 在疫情发生之前,在知乎上刷到一个回答,说是用服务器实现一个自动爬取机票并将过滤后的机票信息发送到自己的邮箱中,感觉十分有趣.由于疫情原因无法返校,加上家和学校相隔接近3000公里,再加上 ...

  8. 爬虫技术:携程爬虫阳光问政数据

    爬虫技术:携程爬虫阳光问政数据 携程爬取阳光问帖子:进行了简单的数据存储,数据量共145226条,爬取时间为:3.65小时,实际时间感觉要多于统计时间. 代码如下: import time impor ...

  9. 携程逆向爬虫 | PC网页端 | 旅游景点评论爬虫

    目录 导语 1. 获取所有城市_id 2. 分析评论信息位置 3. 获取当前市 景点页数 4.获取当前景点的评论页数 5. 总体爬虫效果 6. 注意 导语 自携程更新后,这是全网首篇,关于新版携程的逆 ...

最新文章

  1. Tomcat参数设置,解决内存溢出问题
  2. 【动态规划】leetcode - Maximal Square
  3. kotlin集合操作符——生产操作符
  4. 步骤5 - Orchestra从微服务提供商获得结果,再发送回WebSocket服务器
  5. 优化器,SGD+Momentum;Adagrad;RMSProp;Adam
  6. 今晚直播丨国产数据库入门:openGauss数据库的基本管理和SQL语句入门
  7. 华为息屏显示鸿蒙系统动画,华为EMUI 11升级息屏UI和动画!升级点很像小米MIUI 12...
  8. 计算机技术学科分类号,专业分类号及学科码对照表.doc
  9. javaSocket网络编程
  10. 干货 | Python之自动化报表
  11. android菜单对话框文字,Android 对话框、信息提示和菜单
  12. studio3t破解
  13. html5设置谷歌浏览器兼容性,google浏览器
  14. spyder python调试_Spyder如何调试
  15. python pandas如何实现类似于excel中left或者right函数
  16. 会员管理系统,建议收藏!
  17. 大规模优化方法(一)
  18. Java:pdf转word
  19. html播放音乐怎么隐藏,酷狗音乐隐藏的小秘密 咋让听歌更方便
  20. 解读PMP考点:管理储备和应急储备

热门文章

  1. linux centos7系统怎么查看设置ip
  2. 交恶微软、拒绝乔布斯,21 岁的他是如何开发出 Linux 的?
  3. cocos creator shader 方形头像变为圆形头像
  4. 攻防世界新手村初探:MISC篇(1-5)
  5. dbus-glib编程4:使用dbus-glib
  6. 利用python读取ICESat-2ATL13数据
  7. 大数据测试之大数据系统及特点
  8. 看门狗定时周期设置的秘密
  9. 国服吃鸡一直显示服务器正在维修,绝地求生进的时候一直都是与服务器断开连接 | 手游网游页游攻略大全...
  10. 曾经的王者PHP现如今PHP8到底是否能够一改PHP“颓势”?