12306余票查询
brook_
这个作者很懒,什么都没留下…
展开
-
12306余票查询(六)——优化页面结构,加入js请求数据部分
首先第一点优化是,默认查询的出发站是深圳 依旧全是jquery实现$("input").eq(0).val("深圳");用户需要手动输入目的地,页面加载完毕后,目的地输入栏获取焦点 // 获取焦点$("input").eq(1).focus();设置初始时间为当前明天 // 设置默认出发时间为明天 function getFormatDate(){ ...原创 2018-06-20 22:52:32 · 367 阅读 · 1 评论 -
12306余票查询(七)——如何让python的代码可以被js引用
数据得用python跑出来,然后我又不想自己写个服务器传数据给浏览器,这里就用到了Eel库,https://github.com/ChrisKnott/Eel Github上有非常详细的讲解import eel@eel.exposedef getdata(start_station,destination,date): data = Get_tickets(start_statio...原创 2018-06-21 00:58:17 · 7363 阅读 · 0 评论 -
12306余票查询(八)——获取票价遇到的bug
原来的代码非常的不健壮,结果在夜间跑的时候,由于系统维护,会出现请求票价的bug try: time.sleep(random.randint(1,2)) response = requests.get(url)except Exception as e: print("获取票价失败"+"|"+url,e) # 请求页面失败,所有票价为空...原创 2018-06-21 01:07:45 · 495 阅读 · 0 评论 -
12306余票查询(九)——前端代码再修改,最终效果展示
// 若运行到这里说明参数都合法,进行请求数据 var data = await eel.getdata(start,destiction,date)(); body = old_body + data; $("body").html(body);旧的局部刷新方式,会产生个bug,就是页面只能搜索一次,获取数据后,整个b...原创 2018-06-21 15:19:03 · 822 阅读 · 0 评论 -
12306余票查询(一)——分析页面
这段时间Python写的很少,用这个小项目复习一下以前的知识首先打开12306看一下页面结构吧 因为我们没有点击查询,所以现在页面中是没有余票信息的, 随便选个出发站目的地,日期,点击查询, 发现相关余票信息便出现在网页上了, 打开开发者工具,切到Network,刷新页面,重新进行点击查询的过程 发现多出一条ajax请求,这就是我们要模拟的请求数据的操作 再看一下这条aja...原创 2018-06-19 12:19:15 · 3037 阅读 · 0 评论 -
12306余票查询(二)——获取余票数据
上节分析了获取余票数据的请求,本节开始抓取数据 可以看到,这里的站点名,是拼音码,显然是保存在对应的字典中 在网上下载这个字典 https://pan.baidu.com/s/1i4FTjgD 我是在这里下载的,整理好的py文件,可以直接使用. 现在终于可以开始爬取数据了class Get_tickets: def __init__(self,start_station...原创 2018-06-19 13:17:13 · 3554 阅读 · 3 评论 -
12306余票查询(三)——获取余票票价
上一节只能看到相关车次,车次的时间,但是没有很重要的一个信息,票价,这显然是很不合理的。通过分析页面请求情况,可知,车次的票价,都是分开请求的,但是一条请求里,包括了了一个车次的所有票价信息每个车次都得请求一次票价,肯定要把请求票价封装起来def get_price(train_no, from_station_no, destinction_no, seat_types, date)...原创 2018-06-19 14:46:14 · 949 阅读 · 0 评论 -
12306余票查询(四)——余票价格并入数据集中
因为获取每个车次的余票,都需要请求数据,,会有阻塞,这里采用协程,提高效率 首先,写个函数,是处理单个车次的加入票价行为 def get_one_price(self, info_dict): # 调用获取票价的函数 price_dict = get_price(info_dict['train_no'] , info_dict["from_stat...原创 2018-06-19 15:04:51 · 588 阅读 · 0 评论 -
12306余票查询(五)——网页模板制作
虽然各位大佬把查询信息打印在终端是很酷,但是个人觉得制作成网页,可以添加更多的样式和更多的操作.但是会增加一个网页与pyhton的交互问题,本节只讲网页制作 简单到简陋的网页布局,只是为了更好的展示余票信息, 都是照着12306的写的,非常简单实用 这里还需要实现标题置顶后悬浮的效果 思路就是监听页面滚动,当滚动位置大于标题的top值时,改变标题的布局为fixed 即posi...原创 2018-06-20 14:40:11 · 856 阅读 · 7 评论