爬虫07 爬取阿里旅行特价机票
https://sjipiao.alitrip.com/cheap_flight_search.htm?tripType=0&depCityName=&depCity=&arrCityName=&arrCity=&depDate=2016-09-04&range=30&searchGapDay=3
通过填写出发地和到达地以及出发日期前后多少天,我们得到网址变化
https://sjipiao.alitrip.com/cheap_flight_search.htm?tripType=0&depCityName=%C9%CF%BA%A3&depCity=SHA&arrCityName=%B1%B1%BE%A9&arrCity=BJS&depDate=2016-09-04&range=30&searchGapDay=3
发现depCity=由&变成了SHA,arrCity=由&变成BJS
depDate=2016-09-04&range=0也会随着时间选择而改变
由此得到选择地点和时间的初步想法
通过抓包看到一个很棒的文件名cheap_light
看到它有个get申请
请求网址是https://sjipiao.alitrip.com/search/cheapFlight.htm?startDate=2016-09-04&endDate=2016-09-04&routes=SHA-BJS&_ksTS=1472729701579_680&callback=jsonp681&ruleId=4&flag=1
打开后发现是json文件,接下去要爬取的目标就是它
对它进行分析 发现从flights开始为我们需要的
"flights":[{"depCode":"SHA","depName":"\u4e0a\u6d77","arrCode":"BJS","arrName":"\u5317\u4eac","price":419,"depDate":"2016-09-04","week":6,"discount":3.4,"priceDesc":"\u5143"
从而得到出发地,目标地,价格,折扣,出发时间
用json.load库匹配并放入字典
接下去就是代码工作了
# -*- coding: utf-8 -*- import datetime import json import urllib import re import sys reload(sys) sys.setdefaultencoding('utf-8')def getinfo(startdate, enddate,startplace,endplace):url = 'https://sjipiao.alitrip.com/search/cheapFlight.htm?startDate=%s&endDate=%s&' \'routes=%s-%s&_ksTS=1472727272319_680&callback=jsonp681&ruleId=4&flag=1' % (startdate, enddate,startplace,endplace)flight_html = urllib.urlopen(url).read()pattern = r'\(\s+(.+)\)' re_rule = re.compile(pattern)json_data = re.findall(pattern, flight_html)[0]flight_json = json.loads(json_data)flights = flight_json['data']['flights']return flightsdef trip(flight):for f in flight:depname = '%s - ' % f['depName']arrname = '%s\t' % f['arrName']price = '\t价格:%s%s(折扣:%s)\t' % ((f['price']), f['priceDesc'], f['discount'])departdate = '\t日期:%s' % f['depDate']print depname + arrname + price + departdatetoday = datetime.date.today() delay = int(raw_input('输入数字(最多查询到45天后) 要查询几天内的机票 \n ')) enddate = today + datetime.timedelta(delay) print enddate endstr = str(enddate) print '航班日期'+str(today) + ' To ' + endstr +'\n' print '城市简称查询办法进入阿里旅行输入地点后查看网址中depCity= arrCity= \n' startplac=raw_input('请输入出发地城市大写英文简称 eg:SHA \n') endplac=raw_input('请输入目的地城市大写英文简称 eg:SHA \n ') flights = getinfo(today, enddate=endstr,startplace=startplac,endplace=endplac) print '==================以下为航班信息==================' trip(flights) print '================机票信息已显示完毕================\n'
爬虫07 爬取阿里旅行特价机票相关推荐
- Python 爬虫-爬取阿里旅行特价机票信息(1)
本着对于出游的向往,但又苦于没有找到合适的机票价格.于是,萌生了去获取相关网站的机票信息.一开始是想去获取全站机票信息,但是那个工作量太大,而且机票价格在一天时间里经常变更,给数据的爬取增加了极大的难 ...
- python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...
- python websocket爬虫_python爬虫----爬取阿里数据银行websocket接口
业务需求:爬取阿里品牌数据银行的自定义模块==>>>人群透视==>>>查看报告==>>数据 最终获取页面: 页面获取情况如下: 绿色的就是我们需要模拟的 ...
- lofter 爬虫_Python网络爬虫1 - 爬取网易LOFTER图片
LOFTER是网易出品的优质轻博客,灵感源于国外的tumblr,但比之更加文艺,更加本地化.本人非常喜欢LOFTER的UI设计,以及其中的优质用户和内容,似乎网易并不擅长推广,所以受众并不广泛.这都是 ...
- python爬取阿里cve漏洞库信息
水一篇爬取阿里漏洞库信息的文章,有好几周没写爬虫了,在爬取时感觉还是xpath爬取高效些,但是用的正则匹配(re库,python内置),正则虽说在写匹配样式时比较繁琐但是精确匹配还是得用它,只 爬取第 ...
- 爬取阿里云物联网平台设备的物模型数据
背景说明 按项目经理的要求,需要导出阿里云物联网平台上所有设备的物模型数据到Excel上,方便后台导入.给客户演示和备份.但是,阿里云物联网平台没有这个功能,手动一个个处理不现实,因此只能写一个爬虫爬 ...
- python爬虫之爬取网页基础知识及环境配置概括
记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...
- scrapy爬取——阿里招聘信息
scrapy爬取--阿里招聘信息 爬取网站地址: https://job.alibaba.com/zhaopin/positionList.htm 1.创建项目 进入项目目录 输入cmd进入都是窗口创 ...
- Python爬虫之爬取网络小说并在本地保存为txt文件
Python爬虫之爬取网络小说并在本地保存为txt文件 注:本文使用软件为Sublime Text,浏览器为谷歌浏览器 (新手小白第一次写,写得不好请见谅) **1.**首先找到想要爬取的小说章节目录 ...
最新文章
- WPF中StringFormat的用法
- Jwplayer 读取服务端文件的两种方式
- 2018-2019-1 20165335 《信息安全系统设计基础》第六周学习总结
- 【杂谈】购言有三签名纪念版书籍,送1~3副有三AI学习扑克牌
- 状态机在VHDL中的实现
- linux nginx线程池,nginx使用线程池提升9倍性能
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- 普通电脑能做成瘦客户机吗_阿里云的“无影”云电脑,能不能真的代替传统电脑...
- Windows 7 时代即将终结!
- “跟技术Leader聊了10分钟,我就猜到下周要发生重大宕机事故!”
- dubbo调用原理,过程(知其然,知其所以然)
- [复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation...
- 使用PhotoShop制作公章
- win7系统配置时间服务器,与Internet时间服务器同步 设Win7精确时间
- 基于STM32F103C6T6HAL库控制SG90舵机
- python论文排版格式_论文排版(一):三分钟了解页面设置
- VSCode 过滤.meta 文件
- vue 萤石_记录Vue结合萤石视频ezuikit.js的爬坑记录
- python中round函数的使用方法
- Qt编写可视化大屏电子看板系统24-模块2当月计划