python爬取机票信息

飞机和高铁列车不同,在同样的航线中有着不同的票价,借此我们希望获取尽量多的机票信息来分析机票的变化规律。
首先我们选取京东机票为爬取对象http://jipiao.jd.com/,以北京至上海为例,我们审查元素发现机票信息存在 li 标签中,我们先尝试用requests获取网页源码。

import requestsdef 获取(url,headers):try:r = requests.get(url,headers = headers)r.encoding = 'utf-8'   #统一编码utf-8if r.status_code == 200:return r.textelse:print('获取错误')except:return '其他错误'

运行后我们发现print的内容中并不包含机票信息,这其实是因为网站采用的是Ajax开发,这时用requests请求就没有意义了,因此我们改用selenium库(模拟浏览器行为的库)爬取。

  1. 使用pip下载selenium库
pip install selenium
  1. 引入selenium后,我们选用chrome进行爬取
from selenium import webdriverdef 获取(url):browser = webdriver.Chrome()browser.get(url)time.sleep(10)  #加载Ajax信息,防止代码不全page_code = browser.page_sourcebrowser.close()return page_code
  1. 采用beautifulsoup4进行解析
from bs4 import BeautifulSoup

审查元素发现航空公司,机型,起飞时间,票价信息包含在class=flight-content标签中li标签的fore1,fore2,fore4标签中

def 解析(page_code):soup = BeautifulSoup(page_code,'lxml')items = soup.find_all('div',class_='flight-item')allitems = []for item in items:single = []fore1 = item.find('div',class_="f-name")  #航空公司single.append(fore1.string)fore12 = item.find('span')    #机型          single.append(fore12.string)fore2 = item.find('div',class_="f-time")  #起飞信息single.append(fore2.string)fore4 = item.find('span',class_="f-price")single.append(fore4.string)allitems.append(single)return allitems

现在当日的机票信息均已保存在allitems中了。

4.爬取工作已做好,现在利用format对打印出的结果进行简单的页面优化

def 排版(allitems):print("{:^10}{:^14}{:^8}{:^6}".format("航空公司","机型","起飞时间","票价"))num = len(allitems)for i in range(num):u = allitems[i]print("{:^10}{:^14}{:^8}{:^6}".format(u[0],u[1],u[2],u[3]))

得到结果:

注:1.本文爬取的是2020年4月17日北京至上海的机票信息,逾期可能无法正常输出,如要修改时间或地点请自行修改url。
2.如果没有chrome浏览器则无法正常使用,webdriver的版本要和chrome版本匹配,并且要添加到环境变量中,否则无法正常驱动。
3.源码可私聊,欢迎大神斧正。

python爬取机票信息相关推荐

  1. Python 爬取网页信息并保存到本地爬虫爬取网页第一步【简单易懂,注释超级全,代码可以直接运行】

    Python 爬取网页信息并保存到本地[简单易懂,代码可以直接运行] 功能:给出一个关键词,根据关键词爬取程序,这是爬虫爬取网页的第一步 步骤: 1.确定url 2.确定请求头 3.发送请求 4.写入 ...

  2. python爬取控制台信息_python爬虫实战之爬取智联职位信息和博客文章信息

    1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author  ...

  3. Python爬取售房信息并保存至CSV文件

    Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...

  4. python爬取网页信息

    最近在学习python,发现通过python爬取网页信息确实方便,以前用C++写了个简单的爬虫,爬取指定网页的信息,代码随便一写都几百行,而要用python完成相同的工作,代码量相当少.前几天看到了一 ...

  5. python爬取电影信息并插入至MySQL数据库

    在上篇博文中,博主使用python爬取了豆瓣电影的影片信息,接下来,博主考虑到在之前做的JavaWeb电影院项目中需要向数据库中一个个的插入影片数据,十分的繁琐,那么在使用了python爬虫后,这个操 ...

  6. python爬取招聘信息_python 爬取boss直聘招聘信息实现

    原标题:python 爬取boss直聘招聘信息实现 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求 ...

  7. 使用python爬取天气信息(包括历史天气数据)

    使用Python爬虫获取城市天气信息(包括历史天气数据) 使用python爬取历史天气数据 文章目录 使用Python爬虫获取城市天气信息(包括历史天气数据) 一.准备工作 二.完整代码 更新 一.准 ...

  8. python爬取个人信息_Python爬取个人微信朋友信息操作示例

    本文实例讲述了Python爬取个人微信朋友信息操作.分享给大家供大家参考,具体如下: 利用Python的itchat包爬取个人微信号的朋友信息,并将信息保存在本地文本中 思路要点: 1.利用itcha ...

  9. python爬虫练习3:通过python爬取二手房源信息

    通过爬虫爬取二手房源信息 前言 第一步:分析数据结构 第二步:写代码 1.引入库 2.UA伪装 第三步:我们用三种库分别获取数据 1:Xpath 2:Pyquery 3:BeautifulSoup 源 ...

最新文章

  1. Pytorch 深度学习实战:视频自动打码
  2. hdu3415 单调队列模板题
  3. AVL树的单双旋转解析
  4. mingw w64 v8.0.0_MinGW+OpenGL
  5. Unity Shader: 优化GPU代码--用step()代替if else等条件语句。
  6. 生成验证码的一段源代码
  7. pycharm导入本地文件,程序运行正常,但导入模块时出现红色波浪线
  8. php strtofloat,Delphi6函数大全(3)
  9. Docker 从入门到放弃(一)安装
  10. Julia : 正则表达式
  11. Java 源码解析最全合集
  12. 二进制和格雷码之间的转换
  13. VMware Horizon View许可证如何工作?
  14. 如何通俗易懂的解释什么是云服务器?
  15. vtd和vt的区别_vtvi和v的区别是什么?
  16. php如何计算天数,php计算日期相差天数二种方法
  17. 2019年成功与失败的危机公关案例分析
  18. spring boot中小学餐饮配送系统 毕业设计源码645661
  19. arduino平衡车超声波_制作Arduino自平衡车(一)
  20. 哈登独得40分保罗复出 火箭主场103:98复仇魔术

热门文章

  1. Anaconda3(Python3.6)使用whl文件安装opencv
  2. OpenCV与VS2017的安装与环境配置
  3. 弘辽科技:拼多多投产比(ROL)怎样计算?如何提高ROL
  4. java截取前几位_java中怎么截取字符串前几位
  5. OFDM--IDFT实现
  6. mysql国际化存储方案
  7. 大力出奇迹:今日头条小程序跻身代理创业新沃土
  8. java Appium之环境搭建
  9. icloud日历服务器_如何在Windows 10上设置iCloud电子邮件和日历访问
  10. snmp同步端口号_SNMP端口号教程及其示例