爬取携程机票数据

from prettytable import PrettyTable
import requests
import jsondef xiecheng(dcity, acity, date):date = date[0:4] + '-' + date[4:6] + '-' + date[6:8]headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36","Content-Type": "application/json",  # 声明文本类型为 json 格式,'Cookie': '__DAYU_PP=fbffA7JMjfFQYEJvq3yV285fa84ef3bb; _abtest_userid=14f10ca5-5fe5-4b90-8994-a9a2a8289725; _ga=GA1.2.1823657567.1547218198; _RSG=jB4_phNRhw9fNvhoLy8_29; _RDG=28f1ebd8af073928c800c3c3726b485bce; _RGUID=9eab6d7a-f3fc-42ed-90bf-23c572af95e9; _geoinfo=CN%26%e6%b7%b1%e5%9c%b3; _bfa=1.1547218195619.296wjo.1.1547625090247.1554179025352.5.60; _bfs=1.1; Hm_lvt_cdce8cda34e84469b1c8015204129522=1554179026; Hm_lpvt_cdce8cda34e84469b1c8015204129522=1554179026; gad_city=31f35a60e938dff697ddea628b5bea7c; _RF1=14.153.237.134; Session=SmartLinkCode=U155952&SmartLinkKeyWord=&SmartLinkQuary=&SmartLinkHost=&SmartLinkLanguage=zh; _gid=GA1.2.1875696831.1554179028; _gat=1; Mkt_UnionRecord=%5B%7B%22aid%22%3A%224897%22%2C%22timestamp%22%3A1554179028552%7D%5D; _jzqco=%7C%7C%7C%7C1547625095764%7C1.1997966906.1547218199380.1547636825575.1554179028593.1547636825575.1554179028593.0.0.0.59.59; __zpspc=9.5.1554179028.1554179028.1%232%7Csp0.baidu.com%7C%7C%7C%25E6%2590%25BA%25E7%25A8%258B%7C%23; MKT_Pagesource=PC; Union=OUID=index&AllianceID=4897&SID=155952&SourceID=&Expires=1554783828996; MKT_OrderClick=ASID=4897155952&CT=1554179029004&CURL=https%3A%2F%2Fwww.ctrip.com%2F%3Fsid%3D155952%26allianceid%3D4897%26ouid%3Dindex&VAL={"pc_vid":"1547218195619.296wjo"}; _bfi=p1%3D100101991%26p2%3D100101991%26v1%3D60%26v2%3D59'}city = { '阿尔山': 'YIE', '阿克苏': 'AKU', '阿拉善右旗': 'RHT', '阿拉善左旗': 'AXF', '阿勒泰': 'AAT', '阿里': 'NGQ', '澳门': 'MFM','安庆': 'AQG', '安顺': 'AVA', '鞍山': 'AOG', '巴彦淖尔': 'RLK', '百色': 'AEB', '包头': 'BAV', '保山': 'BSD', '北海': 'BHY','北京': 'BJS', '白城': 'DBC', '白山': 'NBS', '毕节': 'BFJ', '博乐': 'BPL', '重庆': 'CKG', '昌都': 'BPX', '常德': 'CGD','常州': 'CZX', '朝阳': 'CHG', '成都': 'CTU', '池州': 'JUH', '赤峰': 'CIF', '揭阳': 'SWA', '长春': 'CGQ', '长沙': 'CSX','长治': 'CIH', '承德': 'CDE', '沧源': 'CWJ', '达县': 'DAX', '大理': 'DLU', '大连': 'DLC', '大庆': 'DQA', '大同': 'DAT','丹东': 'DDG', '稻城': 'DCY', '东营': 'DOY', '敦煌': 'DNH', '芒市': 'LUM', '额济纳旗': 'EJN', '鄂尔多斯': 'DSN', '恩施': 'ENH','二连浩特': 'ERL', '佛山': 'FUO', '福州': 'FOC', '抚远': 'FYJ', '阜阳': 'FUG', '赣州': 'KOW', '格尔木': 'GOQ', '固原': 'GYU','广元': 'GYS', '广州': 'CAN', '贵阳': 'KWE', '桂林': 'KWL', '哈尔滨': 'HRB', '哈密': 'HMI', '海口': 'HAK', '海拉尔': 'HLD','邯郸': 'HDG', '汉中': 'HZG', '杭州': 'HGH', '合肥': 'HFE', '和田': 'HTN', '黑河': 'HEK', '呼和浩特': 'HET', '淮安': 'HIA','怀化': 'HJJ', '黄山': 'TXN', '惠州': 'HUZ', '鸡西': 'JXA', '济南': 'TNA', '济宁': 'JNG', '加格达奇': 'JGD', '佳木斯': 'JMU','嘉峪关': 'JGN', '金昌': 'JIC', '金门': 'KNH', '锦州': 'JNZ', '嘉义': 'CYI', '西双版纳': 'JHG', '建三江': 'JSJ', '晋江': 'JJN','井冈山': 'JGS', '景德镇': 'JDZ', '九江': 'JIU', '九寨沟': 'JZH', '喀什': 'KHG', '凯里': 'KJH', '康定': 'KGT', '克拉玛依': 'KRY','库车': 'KCA', '库尔勒': 'KRL', '昆明': 'KMG', '拉萨': 'LXA', '兰州': 'LHW', '黎平': 'HZH', '丽江': 'LJG', '荔波': 'LLB','连云港': 'LYG', '六盘水': 'LPF', '临汾': 'LFQ', '林芝': 'LZY', '临沧': 'LNJ', '临沂': 'LYI', '柳州': 'LZH', '泸州': 'LZO','洛阳': 'LYA', '吕梁': 'LLV', '澜沧': 'JMJ', '龙岩': 'LCX', '满洲里': 'NZH', '梅州': 'MXZ', '绵阳': 'MIG', '漠河': 'OHE','牡丹江': 'MDG', '马祖': 'MFK', '南昌': 'KHN', '南充': 'NAO', '南京': 'NKG', '南宁': 'NNG', '南通': 'NTG', '南阳': 'NNY','宁波': 'NGB', '宁蒗': 'NLH', '攀枝花': 'PZI', '普洱': 'SYM', '齐齐哈尔': 'NDG', '黔江': 'JIQ', '且末': 'IQM', '秦皇岛': 'BPE','青岛': 'TAO', '庆阳': 'IQN', '衢州': 'JUZ', '日喀则': 'RKZ', '日照': 'RIZ', '三亚': 'SYX', '厦门': 'XMN', '上海': 'SHA','深圳': 'SZX', '神农架': 'HPG', '沈阳': 'SHE', '石家庄': 'SJW', '塔城': 'TCG', '台州': 'HYN', '太原': 'TYN', '扬州': 'YTY','唐山': 'TVS', '腾冲': 'TCZ', '天津': 'TSN', '天水': 'THQ', '通辽': 'TGO', '铜仁': 'TEN', '吐鲁番': 'TLQ', '万州': 'WXN','威海': 'WEH', '潍坊': 'WEF', '温州': 'WNZ', '文山': 'WNH', '乌海': 'WUA', '乌兰浩特': 'HLH', '乌鲁木齐': 'URC', '无锡': 'WUX','梧州': 'WUZ', '武汉': 'WUH', '武夷山': 'WUS', '西安': 'SIA', '西昌': 'XIC', '西宁': 'XNN', '锡林浩特': 'XIL','香格里拉(迪庆)': 'DIG','襄阳': 'XFN', '兴义': 'ACX', '徐州': 'XUZ', '香港': 'HKG', '烟台': 'YNT', '延安': 'ENY', '延吉': 'YNJ', '盐城': 'YNZ','伊春': 'LDS','伊宁': 'YIN', '宜宾': 'YBP', '宜昌': 'YIH', '宜春': 'YIC', '义乌': 'YIW', '银川': 'INC', '永州': 'LLF', '榆林': 'UYN','玉树': 'YUS','运城': 'YCU', '湛江': 'ZHA', '张家界': 'DYG', '张家口': 'ZQZ', '张掖': 'YZY', '昭通': 'ZAT', '郑州': 'CGO', '中卫': 'ZHY','舟山': 'HSN','珠海': 'ZUH', '遵义(茅台)': 'WMT', '遵义(新舟)': 'ZYI'}url = 'https://flights.ctrip.com/itinerary/api/12808/products'request_payload = {"flightWay": "Oneway","army": "false","classType": "ALL","hasChild": 'false',"hasBaby": 'false',"searchIndex": 1,"portingToken": "3fec6a5a249a44faba1f245e61e2af88","airportParams": [{"dcity": city.get(dcity), "acity": city.get(acity), "dcityname": dcity, "acityname": acity,"date": date}]}# 这里传进去的参数必须为 json 格式response = requests.post(url, data=json.dumps(request_payload), headers=headers).textrouteList = json.loads(response)["data"].get('routeList')table = PrettyTable(["LowestPrice","Airline","FlightNumber" ,"PunctualityRate","ArrivalDate", "DepartureDate"])# print("123",routeList)for route in routeList:if len(route.get('legs')) == 1:info = {}legs = route.get('legs')[0]flight = legs.get('flight')info['Airline'] = flight.get('airlineName')info['FlightNumber'] = flight.get('flightNumber')info['DepartureDate'] = flight.get('departureDate')[-8:-3]info['ArrivalDate'] = flight.get('arrivalDate')[-8:-3]info['PunctualityRate'] = flight.get('punctualityRate')info['LowestPrice'] = legs.get('characteristic').get('lowestPrice')table.add_row(info.values())print(dcity, '------->', acity, date)print(table)if __name__ == "__main__":dcity = input('请输入起点: ')acity = input('请输入终点: ')date = input('请输入出行日期: ')xiecheng(dcity, acity, date)

运行结果

python 爬虫,获取携程网站机票数据相关推荐

  1. Python爬虫获取基金持仓股票数据

    Python爬虫小实战 . 通过Python爬虫获取基金持仓股票数据,按照基金持仓金额对股票进行排行,并储存在本地数据库. from urllib import request from bs4 im ...

  2. python 爬虫 获取bilibili search搜索数据,返回json格式

    话不多说直接上代码 测试用例 : 搜索java为关键词的 时长在60分钟以上的视频 import requests import json import osheaders = {"user ...

  3. 有哪些网站值得用python爬虫获取很有价值的数据

    ^___^一个程序员的淘宝店:点击打开链接,助你快速学习python技术的一臂之力,不喜欢看广告的请忽略这条! 0.IT桔子和36Kr在专栏文章中(http://zhuanlan.zhihu.com/ ...

  4. 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 位卑未敢忘忧国,事定犹须待阖棺. ...

  5. Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!

    Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...

  6. python Chrome + selenium自动化测试与python爬虫获取网页数据

    一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...

  7. python爬虫获取基金数据2

    用sklearn分析基金数据<1> python爬虫获取基金数据<2> 数据预处理:数据清洗.生成样本数据<3> 用sklearn训练样本数据<4> 用 ...

  8. Python 爬虫 | 获取历史涨停数据

    最近想研究一下连板的个股有没有什么规律(暴富我来了),这一篇主要就是做数据准备的. 目录 1.数据获取 2.代码实现 1.数据获取 数据来源就是问财,查指定日期的涨停即可获得当日的数据. 2.代码实现 ...

  9. 编写python爬虫 获取中华英才网全网工资数据

    做数据分析 数据挖掘,第一步是获取数据,在这里,我们要分析现今全国各地各个职业的工资情况. 我们选择较为权威的'中华英才网',编写python爬虫获取该网站上的各个招聘信息说给出的工资,再取其行业工资 ...

最新文章

  1. 2016.3.22(关系型数据库简介,管理数据库和表)
  2. 学习Identity Server 4的预备知识
  3. java 传入多个参数时报Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,... 解决方案...
  4. 【2018icpc宁夏邀请赛现场赛】【Gym - 102222H】Fight Against Monsters(贪心排序)
  5. Visio显示不完整
  6. Linux学习之VMware安装Linux
  7. asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!
  8. 把collections.Counter的计数结果转为pandas的DataFrame
  9. 计算机软件英文参考文献,软件工程英文参考文献(优秀范文105个)
  10. win10虚拟机连接不上内网服务器,win10系统虚拟机无法连接网络的解决方法
  11. OpenCV识别图形以及常用函数处理
  12. 笔记本计算机没有没有显示无线网络连接,笔记本没有无线网络连接,教您笔记本没有无线网络连接...
  13. Vivo应用商店上架最全最细流程
  14. 前后端分离的文件上传,上传zip或者rar压缩包(vue+springboot)。
  15. 电脑怎么打出冒号符号_冒号的用法有哪些?写作文的时候冒号怎么用?冒号在电脑上怎么打出来?...
  16. Kettle计算器常用函数
  17. 用Ubuntu20.04开热点
  18. 自动驾驶与python_Python对自动驾驶技术的重要作用
  19. 雷达图的4种绘制方法
  20. 小米6用哪个软件测试电池,小米6暴力续航官方测试:用一天稳妥妥

热门文章

  1. 中国用于先天性代谢错误的医用食品市场深度研究分析报告
  2. crmeb知识付费uniapp重构 适配小程序 APP 微信H5
  3. type-aliases-package不生效问题记录
  4. PS绘画蒙板使用方法
  5. Java 添加 Excel 文本水印和图片水印及,及其他操作文档
  6. Kotlin学习笔记五、控制语句
  7. 贪心算法求解:王者荣耀购买点券最优策略
  8. c语言实参和形参占用存储单元_在C语言中,以下说法正确的是()。 A.实参和与其对应的形参分别占用独立的存储单元。 B.实参和与...
  9. xgboost算法_XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制...
  10. 网站主题实现技术-jsp include