当前位置:18183首页 > Android频道 > 安卓新闻 > 业界新闻 > 正文

实战pythony应用 教你如何用python抢票

来源:www.18183.com作者:喵叽时间:2021-07-22

python为无数码农带来了便利;同时,越来越多的python工程师被标榜为”高薪党”;“全民python"的时代渐渐到来。有许多人也想学习python,但不明白学会python之后要如何应用。实际上这很简单,就让我们用一个实例,具体地感受一下python的魅力吧!

前期准备:

1.Python版本:Python3

2.运行平台:Windows

3.IDE:PyCharm

4.浏览器:Chrome

项目名称:

《python实现12306抢票》

项目介绍:

本项目利用python实现对12306网站的爬去,进行余票查询,并查询相应的时间、座次类型等,方便朋友们抢票。众所周知,12306是一个级别比较高的网站,要想爬去绝非易事,特别是对相应验证码的处理,足以让一般的python工程师望而却步了。今天,我们就来简单的爬取一下这个神奇的网站。

网站信息:

12306官网(注:本项目所获取的信息全部为网上公开的可取信息)

具体步骤:

首先,我们导入第三方库

import requests

123

之后,我们写一个函数

def check():

123

之后,就往函数里写程序吧

我们先来获取网页信息

在这里插入图片描述

首先,我们发送请求

response =requests.get('https://kyfw.12306.cn/otn/leftTicket/queryA?leftTicketDTO.train_date=2018-09-23&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=TJP&purpose_codes=ADULT')

123

由于显示编码格式与原格式不同,导致无法正确的处理所获去的数据;下面,我们先转换一下编码格式

在这里插入图片描述

#将显示编码与原编码格式统一

response.encoding = 'utf-8'

12345

为方便接下来的数据处理,我们需将数据转换成字典格式

#转换成字典格式

result = response.json()

#这里通过调用控制台,找到相应数据,并一层层地追踪

return result['data']['result']

123456789

我们现在来编写序号

number= 0

#用split将数据进行切割,方便后续查找

for i in check():

tem_list = i.split('|')

123456789

接下来,我们得查看各个坐次所对应的序号了;可以在调试的时候输出查值

#查找各坐次 # for n in tem_list:

# print(nu,n)

# nu +=1

# nu =0

#print(i)

#注:以上内容只供调试使用

12345678910111213

通过调试程序,我们找到相应信息的序号

#23 =软卧

#26 = 无座

#28 = 硬卧

#29 = 硬座

#30 = 一等座

#31 = 二等座

#32 = 商务座

最后,只需找到你需要买的座次就行了

tem_list = i.split('|')

if tem_list[32] != '无' and tem_list[32] != '':

print(tem_list[3],'有票')

else:

print(tem_list[3],'无票')

123456

好了,朋友们,是时候拿去试一下了

免责声明:文中图片应用自网络,如有侵权请联系删除

18183手游网发布此文仅为传递信息,不代表18183认同其观点或证实其描述。
更多>>

美女福利

【18183网红站】短视频运营零基础教学

【18183网红站】短视频运营零基础教学

想运营短视频不知道怎么做?跟着我们一起零基础短视频教学,每日爆款视频技巧解读、工具式教学轻松运营短视频!
查看原文》》

热门资讯

去看看>>

每日抽奖

热门发号

乱斗西游2超级联赛18183礼包 乱斗西游2超级联赛18183礼包

热门游戏

精品推荐

  • 新游期待榜
  • 热门手游榜
      业界新闻