位置: 编程技术 - 正文
推荐整理分享用Python抢过年的火车票附源码(python写抢购教程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:用python抢红包,用python抢红包,python写抢券程序,用python抢优惠券,python写抢购教程,python写抢券程序,python写抢券程序,如何用python抢东西,内容如对您有帮助,希望把文章链接给更多的朋友!
前言:大家跟我一起念,Python大法好,跟着本宝宝用Python抢火车票
首先我们需要splinter
安装:
pip install splinter -i --trusted-host pypi.douban.com
然后还需要一个浏览器的驱动,当然用chrome啦
下载地址:
然后我们输入一些像搜索的内容吧
由上可以发现,该输入框的name=wd,通过fill似乎只能通过name填充
官方说明: Fill the field identified by ``name`` with the content specified by ``value``.
那就在输入框搜索splinter,当然也可以输入中文,但是最好指定Unicode编码,如u”我”
有意思的事,你会发现你都不需要点击“百度一下”就到搜索页面了
但是,如果多次搜索,我们还是需要点击“百度一下”的
下面就不在带着大家找这些元素的id,value什么的了,通过chrome的F找自己需要的吧
那么把点击栏find出来吧
我们发现,百度搜索栏的value=”百度一下”,id=”su”
所以把这个按钮提取出来
怎么点击呢?简单如下
这有什么用?
我们找找页面里有没有我想找的东西吧,比如找找有没有这个地址“splinter.cobrateam.info”
如果该页面存在,则返回True,反之亦然
怎么退出呢?
好吧,上面就是参照官方文档写的一个简单的入门教程了,下面我们进入正题吧~~~个人是觉得授人以鱼不如授人以渔的,所以我尽量讲解所有的内容,而非发个代码,让大家copy一下,然后不求甚解。值得注意的是,我不会去说什么怎么破解验证码以及有什么漏洞可以利用什么的,抢过票的都知道,快一点是一点,而我要做的是就能将机器能做的交给机器做,比如点击,查询,选择等,所以希望必中的还是绕过此文吧。笔者水平也就这么一点点。
首先我们用ipython讲解一下思路
开始当然是导入啦。。
第一步手动登陆,能通过下面的代码填充表单,但是我跳不过验证码,暂时没有精力去研究那东西,多多见谅,所以还是等手动选择验证码的。
第二部选择出发地点日期等
通过cookies选择出发地点,日期及目的地
首先瞧瞧我们的cookies当然是没有的出发日期什么的
至于你的出发地点及目的地对于的cookies值是什么,就得靠自己去copy了,我帮不了
怎么有的这些值?
先将地点日期输进去查询一下,然后chrome按F 找到这一部分即可
打开浏览器跳到这个页面当然是没有我们需要的信息的,比如下面这样
然后我们需要添加出发地,这个得自己去查了,是简单的url加密
添加出发日期
添加目的地
注:如果是修改的话,还是调用add方法,如果传入的字典key值已存在则替换
比如,将目的地改为其他地方xxxx,如下即可
然后在看看现在的cookies值
既然cookies已经准备完毕,reload一下,开始查询吧
是不是发现,地点日期都填上了,很酷有木有
到这一步我们得确认的是,自己已经登录了。一切准备就绪了,就可以刷票了。值得说明的是,上面的步骤都能手工完成。
下面我们需要用组合BeautifulSoup来判断预订可不可以点,当然你也可以选择单点某一趟
反正我只想买高铁的,既然这样,下面两种方法,一是单点一趟,而是轮循着点很多趟,不放过任何机会。
先说第一个方法吧,这个比较简单,不需要用到其他库,单用splinter就够了,就先从简单的说起吧。
从我自己坐的火车线路来看,一共六趟,我只想做高铁,那么我一直点高铁的那一趟预订是不是就够了,当然是!!一共六个预订,我的预订在第二个,索引值自然在1了啦。(会python的不会问我为什么的吧!!!)
然后如果预订成功
应该跳转到选择乘客的位置,
我们就需要按需选择乘客了
然后第一种方法基本讲解完毕。上面的步骤摞在一起其实不过行。然后应该有第三种方法,就是利用默认的自动查询,默认是5秒刷新一次,但是大家都知道,春运期间5秒的区间太长了,怎么办呢?
Chrome的F一下,点击Console
输入autoSearchTime=xxx
默认是毫秒为单位也就是说,默认ms,但是不要修改太小,会被侦测到然后报网络繁忙!!!我改成ms似乎只能刷十到十五次就报网络繁忙了。
其实,用Python刷票也是为了,没抢到,把刷新页面定向抢票的进程挂起,我们就不用时时刻刻去刷了,至于源码,留驱动都在下面的链接了~~代码还有很多不足,以及写的不够优雅,大家可以参考一下,根据实际情况随便修改~留下的邮箱应该都发完了,一个个发真的发不过来~~
需要源码的朋友可以点击下载了:
Python使用pygame模块编写俄罗斯方块游戏的代码实例 文章先介绍了关于俄罗斯方块游戏的几个术语。边框——由*个空格组成,方块就落在这里面。盒子——组成方块的其中小方块,是组成方块的基本单
一波神奇的Python语句、函数与方法的使用技巧总结 显示有限的接口到外部当发布python第三方package时,并不希望代码中所有的函数或者class可以被外部import,在__init__.py中添加__all__属性,该list中填写可以i
使用Python编写简单的画图板程序的示例教程 从这次开始,我会由简单到困难(其实也不会困难到哪里去)讲几个例程,每一个例程都是我自己写(或者修改,那样的话我会提供原始出处)的,都
标签: python写抢购教程
本文链接地址:https://www.jiuchutong.com/biancheng/379933.html 转载请保留说明!友情链接: 武汉网站建设