前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五一来了,还没买到票的朋友,来试下这个

五一来了,还没买到票的朋友,来试下这个

作者头像
somenzz
发布2021-04-30 11:07:15
5910
发布2021-04-30 11:07:15
举报
文章被收录于专栏:Python七号Python七号

听说这个五一将出现爆发式的出行,原因是很多人过年没回家,赶在五一回。我很能理解,因为我就是其中的一员,自然的,我也没有买到票,可以这样说,自从毕业之后,只要是长点的节假日,我在 12306 上就没有买到过回老家的票。

不过没买到票,也别灰心,我们不是有 Python 吗,今天再次分享下 12306 的 Python 抢票工具,改下代码,还能用。

都知道 12306 的登录验证码比较奇葩,选择了图片验证码还没完,还要拖动滑块,这个工具就在登录环节,里面还搭建了验证码的识别服务,需要自己搭建,虽然按照它的方法搭建了,依然失败了,猜测可能与滑块验证码有关,作者已经快两年没有更新了。

其实只要发送请求时携带的 cookie 没有过期,请求就是有效的,想到这,改了改代码,将原来的用户名密码那里添加了 cookie 相关的信息,在请求的时候携带 cookie ,然后运行了下,是可以用的:

下面是使用教程:

  1. 下载源代码
代码语言:javascript
复制
git clone https://gitee.com/somenzz/get_12306_tickets.git

如果你没有安装 git,可以在公众号「Python七号」回复「12306」获取压缩包,下载后解压即可。

  1. 修改配置文件

进入 get_12306_tickets 目录,可以找到配置文件 TickerConfig.py ,里面有详细的注释,修改好自己要抢票的信息就可以,不再赘述。这里只说下如何获取 cookie 信息,也就是配置文件的下述信息:

代码语言:javascript
复制
tk = "hJS61DZ91CYfiz4O3pV_NfKGZ*****9U4UL9hZWg09s1s0"
RAIL_EXPIRATION = "161918280****"
RAIL_DEVICEID = "YUhVlabf8dlgF8sL*****_wcL5manb6X1-Ok4MRChkKhQqtgv80Ba1JVTVqqSHwBtfxZhl_aBaz20NMVRe2RingNB93-qDv0wEwhwqyEro8y2WUueNfqfeWL3YEc1q61AEdvVmnNQxXlmt1FdAgvSM1HNoJaJH"

方法就是使用 Chrome 浏览器打开 12306 并登录,然后打开谷歌浏览器的开发者工具,找到 network,点击 XHR,然后随意找到一个接口请求,直到看到对应的 cookie 信息,如下图所示:

然后将上图中的 cookie 字符串分解填入配置文件 TickerConfig.py 中即可。

  1. 制作虚拟环境,激活,安装依赖包
代码语言:javascript
复制
cd get_12306_tickets
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
  1. 加入cdn: python3 run.py c
  2. 启动脚本: python3 run.py r

最后的话

如果遇到问题,可以直接公众号对话框内发消息给我,也可以添加微信「somenzz」,祝你抢到回家的车票。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最后的话
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档