python小爬虫(12306火车票)
来源:互联网 发布:中兴手机mac地址 编辑:程序博客网 时间:2024/06/06 07:38
起初不知道爬虫是什么...然后上网搜了一下,通俗的将爬虫的目的就是从网页上拉取信息...网上介绍最多的是用python写爬虫,然后我就去看了看python的爬虫,写了一个小小的12306火车票的爬虫(本人用的是python3,工具是pycharm2017.3)....
步骤:
1. 首先要写导入三个包(BeautifulSoup,requests,json)
2. 从浏览器(本人使用的是360极速浏览器)中获取访问请求的url
3. `from bs4 import BeautifulSoup
import requests
import json
import time
# 处理访问请求的urldef setStation(from_station,to_station,queryDate,purpose_codes):url='https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=%s&leftTicketDTO.from_station=%s&leftTicketDTO.to_station=%s&purpose_codes=%s'%(queryDate,from_station,to_station,purpose_codes)return url# 处理页面上返回的数据,把json数据截取出来def getList(url):wb_data = requests.get(url)html = wb_data.contentsoup = BeautifulSoup(html, 'lxml')data = soup.findAll('p')for letter in data: t = letter.textreturn tdef sendToPhone(text): passif __name__ == '__main__':# 出发地from_station = 'NUH' #南通# 目的地to_station = 'AFH' #盐城# 出发日期queryDate = '2017-12-20'purpose_codes = 'ADULT'yw_Count = 0yz_Count = 0url = setStation(from_station, to_station, queryDate, purpose_codes)# 进行get请求 获取数据text = ''try: aa = getList(url) text = json.loads(aa) p = text['data'] Data = p['result'] print(Data) bHaveTicket = Trueexcept Exception as e: print('没有查询到车辆信息') bHaveTicket = False # 解析车辆信息 if bHaveTicket: info = '' for index in range(0, len(Data)): sResult = Data[index] # 车次 station = Data[index].split('|')[3] # 出发时间 departTime = Data[index].split('|')[8] # 到达时间 arriverTime = Data[index].split('|')[9] # 用时 userTime = Data[index].split('|')[10] # 软卧 way_22 = Data[index].split('|')[22] if(way_22 == ''): way_22 = '无' # 无座 way_25 = Data[index].split('|')[25] if(way_25 == ''): way_25 = '无' # 硬卧 way_27 = Data[index].split('|')[27] if(way_27 == ''): way_27 = '无' # 硬座 way_28 = Data[index].split('|')[28] if(way_28 == ''): way_28 = '无' textmp = '车次: %s, 出发时间:%s,到达时间:%s,历时:%s,软卧:%s,无座:%s,硬卧:%s,硬座:%s \n'% (station, departTime,arriverTime,userTime,way_22,way_25,way_27,way_28) info = info + textmp print(info) print('检测时间: %s' % time.strftime('%Y-%m-%d %H:%S:%M'))`
4. 显示结果:
车次: K8600, 出发时间:11:05,到达时间:13:56,历时:02:51,软卧:无,无座:无,硬卧:无,硬座:无
车次: K564, 出发时间:12:58,到达时间:15:01,历时:02:03,软卧:无,无座:无,硬卧:无,硬座:有
车次: Z140, 出发时间:18:20,到达时间:20:08,历时:01:48,软卧:无,无座:无,硬卧:无,硬座:有
车次: Z52, 出发时间:18:31,到达时间:20:36,历时:02:05,软卧:无,无座:无,硬卧:无,硬座:有
检测时间: 2017-12-20 10:58:18
(注:python初学者,不足请多多指教!!!)
谢谢!!!
阅读全文
1 0
- python小爬虫(12306火车票)
- python爬虫抢火车票
- python火车票爬虫
- Python爬虫----12306火车票余票查询器
- python 火车票订票系统(12306)
- python 火车票监控12306
- python实现12306查询火车票
- Python爬虫天气预报(小白入门)
- [python]网页小爬虫
- 一个Python小爬虫
- python爬虫小程序
- python图片小爬虫
- Python小爬虫,(多线程)
- python小爬虫
- python爬虫小实例
- python小爬虫
- python小爬虫-糗百
- python爬虫小试
- 关于sprintf函数详解
- VRTK交互脚本解析之VRTK_InteractableObject
- Android开发之gradle理解
- 使用scikit-learn的随机森林对西瓜进行分类
- Error:Execution failed for task ':app:packageDebug'解决方案
- python小爬虫(12306火车票)
- Hyperledger fabric mac 环境搭建 001
- bzoj 2527: [Poi2011]Meteors 整体二分
- i2c总线(1)
- Linux下grep显示前后几行信息
- MVP解绑
- PyQt5开发DSP SCI串口通讯
- Unity3d 切换场景过度动画
- android 简单的实现视频的播放 基于 ijkplayer的封装更加简单 方便快捷