Python 爬虫-爬取阿里旅行特价机票信息(1)

本着对于出游的向往,但又苦于没有找到合适的机票价格。于是,萌生了去获取相关网站的机票信息。一开始是想去获取全站机票信息,但是那个工作量太大,而且机票价格在一天时间里经常变更,给数据的爬取增加了极大的难度——拿到的数据都可以建个一样的机票价格查询网站了。最终决定只爬取关键部分的信息,其余的不做处理。

目前的大致功能如下:

  • 获取特价机票信息
  • 选择出行的目的地
  • 根据目的地,输出相应省份的特价机票信息

多了上面的第三点的原因,是因为要去的目的地可能没有特价机票,但是同省的其他地区有。


目标网站选取

这里选择了阿里旅行的国内机票网页。
这里写图片描述
特价机票的数据就在下面等着我们了,Go Go Go!

在特价航班那里,我们看到可以选择到多少天的航班。随意切换时间后,发现这个特价机票的数据在重新加载后并没有刷新页面,初步断定为ajax的异步加载。


## 数据来源定位 ##

打开 浏览器的“开发者工具”,我们对接下来的请求进行抓取。切换到Network标签,清空当前抓取到的Network收发请求,如下
这里写图片描述

这时,我们把航班的时间从“7天内航班”修改到“14天内航班”,确认后在Network下抓取到了6条数据,其中前4条是选择的时候自动出现,后面两条(红色框里所见)是选择完后,在重新加载“特价机票”页面的时候出现。我们接下来的工作重点就在这里。

这里写图片描述

红色框里的第一条,点开后发现没什么内容,看起来像是一些规定接下来接收数据时的格式。
这里写图片描述

接下来,我们看红框里的第二条,看地址,那么点意思,然后再“Headers”里,是属于“Get”请求,那么它到底是“Get”到了什么呢?
这里写图片描述

点开地址后,我们看到一大堆JSON格式的数据,仔细看看,是不是和特价机票里面的信息很像呢。其中有一段如下打头的数据”\u897f”,这个是按照Unicode方式编码,转码后就可以显示成中文。

    arrName":"\u897f\u5b89"

这里写图片描述


## 数据解析 ##

接下来要做的内容就是解析这一堆数据。使用的是Python。

未完待续——

猜你喜欢

转载自blog.csdn.net/VVBBBBB/article/details/52062694