python爬取机票信息
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库(模拟浏览器行为的库)爬取。
- 使用pip下载selenium库
pip install selenium
- 引入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
- 采用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爬取机票信息相关推荐
- Python 爬取网页信息并保存到本地爬虫爬取网页第一步【简单易懂,注释超级全,代码可以直接运行】
Python 爬取网页信息并保存到本地[简单易懂,代码可以直接运行] 功能:给出一个关键词,根据关键词爬取程序,这是爬虫爬取网页的第一步 步骤: 1.确定url 2.确定请求头 3.发送请求 4.写入 ...
- python爬取控制台信息_python爬虫实战之爬取智联职位信息和博客文章信息
1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author ...
- Python爬取售房信息并保存至CSV文件
Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...
- python爬取网页信息
最近在学习python,发现通过python爬取网页信息确实方便,以前用C++写了个简单的爬虫,爬取指定网页的信息,代码随便一写都几百行,而要用python完成相同的工作,代码量相当少.前几天看到了一 ...
- python爬取电影信息并插入至MySQL数据库
在上篇博文中,博主使用python爬取了豆瓣电影的影片信息,接下来,博主考虑到在之前做的JavaWeb电影院项目中需要向数据库中一个个的插入影片数据,十分的繁琐,那么在使用了python爬虫后,这个操 ...
- python爬取招聘信息_python 爬取boss直聘招聘信息实现
原标题:python 爬取boss直聘招聘信息实现 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求 ...
- 使用python爬取天气信息(包括历史天气数据)
使用Python爬虫获取城市天气信息(包括历史天气数据) 使用python爬取历史天气数据 文章目录 使用Python爬虫获取城市天气信息(包括历史天气数据) 一.准备工作 二.完整代码 更新 一.准 ...
- python爬取个人信息_Python爬取个人微信朋友信息操作示例
本文实例讲述了Python爬取个人微信朋友信息操作.分享给大家供大家参考,具体如下: 利用Python的itchat包爬取个人微信号的朋友信息,并将信息保存在本地文本中 思路要点: 1.利用itcha ...
- python爬虫练习3:通过python爬取二手房源信息
通过爬虫爬取二手房源信息 前言 第一步:分析数据结构 第二步:写代码 1.引入库 2.UA伪装 第三步:我们用三种库分别获取数据 1:Xpath 2:Pyquery 3:BeautifulSoup 源 ...
最新文章
- Pytorch 深度学习实战:视频自动打码
- hdu3415 单调队列模板题
- AVL树的单双旋转解析
- mingw w64 v8.0.0_MinGW+OpenGL
- Unity Shader: 优化GPU代码--用step()代替if else等条件语句。
- 生成验证码的一段源代码
- pycharm导入本地文件,程序运行正常,但导入模块时出现红色波浪线
- php strtofloat,Delphi6函数大全(3)
- Docker 从入门到放弃(一)安装
- Julia : 正则表达式
- Java 源码解析最全合集
- 二进制和格雷码之间的转换
- VMware Horizon View许可证如何工作?
- 如何通俗易懂的解释什么是云服务器?
- vtd和vt的区别_vtvi和v的区别是什么?
- php如何计算天数,php计算日期相差天数二种方法
- 2019年成功与失败的危机公关案例分析
- spring boot中小学餐饮配送系统 毕业设计源码645661
- arduino平衡车超声波_制作Arduino自平衡车(一)
- 哈登独得40分保罗复出 火箭主场103:98复仇魔术