12306余票查询(四)——余票价格并入数据集中

12 篇文章 0 订阅
9 篇文章 3 订阅

因为获取每个车次的余票,都需要请求数据,,会有阻塞,这里采用协程,提高效率
首先,写个函数,是处理单个车次的加入票价行为

    def get_one_price(self, info_dict):
        # 调用获取票价的函数
        price_dict = get_price(info_dict['train_no'] , info_dict["from_station_no"] ,
                               info_dict["destinction_no"] , info_dict["seat_type"] , self.date)
        info_dict.update(price_dict)   # 更新info_dict

info_dict指的是存储单个车次信息的字典

    def add_price(self):
        tasks = []
        for info_dict in self.tickets_info:
            # 遍历获取每个车次字典,布置为协程任务,把任务加入tasks列表
            tasks.append(gevent.spawn(self.get_one_price,info_dict))
        # 等待所有任务全部完成,才进行下移步
        gevent.joinall(tasks)
class Get_tickets:
    def __init__(self,start_station,destination,date):
        self.date = date
        self.params = {
                        "leftTicketDTO.train_date": date,
                        "leftTicketDTO.from_station": stationsInfo.stations2CODE[start_station],
                        "leftTicketDTO.to_station": stationsInfo.stations2CODE[destination],
                        "purpose_codes": "ADULT"
                        }
        self.get_data()
        self.add_price()
Get_tickets("北京","上海","2018-06-19").tickets_info

这句的返回值,是一个包含了所有余票车次信息&&对应票价的列表
那么把这些信息是输出在控制台,还是显示在网页上,相关操作,下回再说

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值