网络报文中的payload

通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如数据量的大小、校验位等,这样就相当于给已经分批的原始数据加一些外套,这些外套起标示作用,使得原始数据不易丢失,一批数据加上“外套”就形成了传输通道的基本传输单元,叫做数据帧或数据包,而其中的原始数据就是payload

举例在爬虫中传输payload

第一种:

转为json,用data传输

第二种:

用requests中json参数直接传输

携程的查机票接口就是payload传输,主要逻辑,代码就粗糙点


经过观察,在Network中的XHR中得到接口,get中有英文格式,代号,可以获取到传到我们需要的product接口中。

接下来我们在product中找到url,构造请求,最后取到数据。

import requestsheaders = {'accept': '*/*','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','content-length': '268','content-type': 'application/json','cookie': 'Session=SmartLinkCode=U1543361&SmartLinkKeyWord=&SmartLinkQuary=&SmartLinkHost=&SmartLinkLanguage=zh; DomesticUserHostCity=BJS|%b1%b1%be%a9; _abtest_userid=4aeaedfe-384a-4883-bf4e-e28439246968; gad_city=96617ee7af8aedd02bbece8583e0066e; MKT_Pagesource=PC; Union=OUID=&AllianceID=5376&SID=1543361&SourceID=&Expires=1565692623194; _RF1=60.247.91.62; _RSG=x8KubZuzqa3arFYHDvMH2A; _RDG=285674425d1124281e30edbb24486f3343; _RGUID=3934f788-e5e1-423b-a091-5b935188fd64; _ga=GA1.2.1351728126.1565087872; _gid=GA1.2.329384755.1565087872; _bfa=1.1565087814721.3hiuez.1.1565087814721.1565141933600.2.29; _bfs=1.2; _gat=1; _jzqco=%7C%7C%7C%7C1565087824308%7C1.806560392.1565087823363.1565141937050.1565141995499.1565141937050.1565141995499.undefined.0.0.26.26; __zpspc=9.2.1565141937.1565141995.2%231%7C360ppc%7C360%7Cpp%7C%7C%23; appFloatCnt=13; _bfi=p1%3D101023%26p2%3D10320673302%26v1%3D29%26v2%3D28; FD_SearchHistorty={"type":"S","data":"S%24%u4E09%u4E9A%28SYX%29%24SYX%242019-08-16%24%u676D%u5DDE%28HGH%29%24HGH"}','origin': 'https://flights.ctrip.com','referer': 'https://flights.ctrip.com/itinerary/oneway/syx-hgh?date=2019-08-16','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',}data = {"flightWay": "Oneway",  # 飞行方式 单向的 固定参数"classType": "ALL","hasChild": "false","hasBaby": "false","searchIndex": 1,"mkt_header": "bdnm",  # 固定参数"airportParams": [{"dcity": "BJS",  # 起点"acity": "SHA",  # 终点"dcityname": "北京",  # 起点名称 没有起作用"acityname": "上海",  # 终点名称 设置错误 暂时也是返回的正确数据"date": "2019-08-16"  # 请求时间}]}url = 'https://flights.ctrip.com/itinerary/api/12808/products'response = requests.post(url=url,headers=headers,json=data)
print(response.text)

得到的文本数据,整理下可以使用:

参考的博客:

payload

payload数据传输,携程查机票接口相关推荐

  1. 和你一起分析网站 - 之携程(机票价格)

    前几天在网上看到有人说不清楚怎么爬携程的机票价钱,然后自己去大概看了一下,大概知道是怎么回事,现在和大家分享一下分析的过程. 准备工作 我用到Chrome浏览器,Python里的requests库作为 ...

  2. 微信小程序体验(1):携程酒店机票火车票

    在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小 ...

  3. python中飞机票购买程序_「最低折扣机票查询」Python 爬取携程所有机票找出最低折扣机票,让你无忧回家过年 - seo实验室...

    最低折扣机票查询 前言 对于平时出行大多数人都是选择坐高铁,当然了如果这是对于距离比较近的行程是最划算的,如果对于路途长远的人言,提前购买飞机票价格可能比高铁票更加的便宜,如果我们可以爬取机票数据并分 ...

  4. 携程国际机票sign破解

    携程国际机票sign破解 1.全局搜索大法: 直接搜索对应的时间,定位到最后结果返回的请求. 发现请求头headers sign为变化状态以及参数 transactionID为变化状态(transac ...

  5. 携程国内机票token

    携程国内机票token破解 1. 直接上搜索大法 定位到最后的结果为 products 这个接口里 2.参数中发现token,尝试发现其换日期token不变,换出发地|目的地 token发生改变. ​ ...

  6. python 携程_请教两个关于使用 python 爬去哪儿,携程等机票网站的问题

    初学 python . 近期公司由于业务原因,需要想办法获取到携程与去哪儿的机票信息. 于是我尝试用 python+urllib 对这两个网站上的信息进行抓取. 去哪儿的爬虫代码如下:(初学 pyth ...

  7. Python 爬取携程所有机票

    打开携程网,查询机票,如广州到成都. 这时网址为:http://flights.ctrip.com/booking/CAN-CTU-day-1.html?DDate1=2018-06-15 其中,CA ...

  8. python爬虫爬取携程国际机票航班信息,返回json串

    # -*- coding: utf-8 -*- import requests, json import hashlib import re# 此处的参数是json 出发三字码,达到三字码,出发时间, ...

  9. tkmybatis 子查询_日均20亿流量:携程机票查询系统的架构升级

    携程机票查询系统,日均20亿流量,且要求高吞吐,低延迟的架构设计.于是,提升缓存的效率以及实时计算模块长尾延迟,成为制约机票查询系统性能的关键.本文是携程集团机票业务技术总监宋涛在「云加社区沙龙onl ...

最新文章

  1. Springboot08-项目单元测试(接口测试)
  2. 根号x_干货 | 设x=my+n?这不耍流氓嘛
  3. 关于Nginx参数路径问题的问题
  4. 数据结构----快速排序
  5. Android 功耗(19)---LCD背光驱动节电技术-LABC/CABC
  6. 爬虫基本功之学点JS(一)
  7. 服务器定期监控数据_机房环境监控的实践【斯必得智慧机房 】
  8. 马云背后的女人:原来淘宝、支付宝的名字都是她取的
  9. java ADT的简单介绍
  10. 【优化算法】帝国主义竞争优化算法(ICA)【含Matlab源码 1635期】
  11. 设置javadoc模板
  12. 【计算机网络】网络层 : RIP 协议 ( 路由选择协议分类 | RIP 协议简介 | 信息交换 | 距离向量算法 | 计算示例 )★
  13. 让电脑崩溃的100种方式(第四种)——结束csrss.exe进程
  14. 时间序列分析之协整检验
  15. 2022年全新PHP程序开发在线工单管理系统源码,售后工单系统
  16. 如何使用阿里云国际版控制台使用海外云服务器-Unirech
  17. 怎么从视频中提取音频,这四个方法简单实用!
  18. 西方情人节前一天的话
  19. ABAP调用外部webservice 问题
  20. 别了,亲爱的读者朋友们!!让我们别处再相逢!

热门文章

  1. 欧莱雅&容易网,打造美发沙龙数字化创新体验全球旗舰店门店
  2. LeapMotion驱动安装教程
  3. 大疆览沃浩界(Livox Horizon)激光雷达测评
  4. 橘子学Arthas01之概念和安装
  5. Python系统模块增强库(xToolkit库)
  6. Werkzeug 与 WSGI 介绍
  7. Power Point基础学习(WPS可参考)
  8. mysql 受影响行数_关于受影响行数的详细介绍
  9. ai智能外呼系统营销服务一体化中的必备工具
  10. InSAR学习(四)高级的InSAR技术之基本原理