100⾏Python代码实现⾃动抢⽕车票(附源码)
前⾔
⼜要过年了,今年你不妨⾃⼰写⼀段代码来抢回家的⽕车票,是不是很Cool。下⾯话不多说了,来⼀起看看详细的介绍吧。
先准备好:
12306⽹站⽤户名和密码
chrome浏览器及下载chromedriver
下载Python代码,来⾃⽹络整理 [点击下载 | 本地下载 ]
代码⽤的Python+Splinter开发,Splinter是⼀个使⽤Python开发的开源Web应⽤测试⼯具,它可以帮你实现⾃动浏览站点和与其进⾏交互。
Splinter执⾏的时候会⾃动打开你指定的浏览器,访问指定的URL。然后你所开发的模拟的任何⾏为,都会⾃动完成,你只需要坐在电脑⾯前,像看电影⼀样看着屏幕上各种动作⾃动完成然后收集结果即可。
有没有什么网站分享源码
了解原理:
到相应URL,到控件模拟登录、查询、订票操作。关键是到控件名称,难点是起始地不是直接输⼊的页⾯值,需要在cookie中查出。
Python代码打开URL,到控件填充值:
def login(self):
self.driver.visit(self.login_url)
# 填充⽤户名
self.driver.fill("loginUserDTO.user_name", self.username)
# 填充密码
self.driver.fill("userDTO.password", self.passwd)
print u"等待验证码,⾃⾏输⼊..."
到⽤户名密码控件名
到起始地控件名
确定起始地的值,⽅法Chrome浏览器中的“检查”功能(按F12),Network ---> Cookies中到:
cookie中起始地的值
拷贝起始地的cookie值,我把⼏个常⽤的城市拷出来,放到了字典中:
cities= {'成都':'%u6210%u90FD%2CCDW',
'重庆':'%u91CD%u5E86%2CCQW',
'北京':'%u5317%u4EAC%2CBJP',
'⼴州':'%u5E7F%u5DDE%2CGZQ',
'杭州':'%u676D%u5DDE%2CHZH',
'宜昌':'%u5B9C%u660C%2CYCN',
'郑州':'%u90D1%u5DDE%2CZZF',
'深圳':'%u6DF1%u5733%2CSZQ',
'西安':'%u897F%u5B89%2CXAY',
'⼤连':'%u5927%u8FDE%2CDLT',
'武汉':'%u6B66%u6C49%2CWHN',
'上海':'%u4E0A%u6D77%2CSHH',
'南京':'%u5357%u4EAC%2CNJH',
'合肥':'%u5408%u80A5%2CHFH'}
查询车票代码:
print u"购票页⾯开始..."
# 加载查询信息
kies.add({"_jc_save_fromStation": self.starts})
kies.add({"_jc_save_toStation": ds})
kies.add({"_jc_save_fromDate": self.dtime})
self.driver.find_by_text(u"查询").click()
其实,你只需要运⾏代码:
python tickets.py 上海⼴州 2018-02-05
当然,还需要⼿动点⼀下的还是万恶的12306验证码,抢到票后确认⽀付就⾏啦。
抢票进⾏中
抢票成功!
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论