自动买票工具 python-splinter
来源:互联网 发布:oracle11g数据库迁移 编辑:程序博客网 时间:2024/05/17 03:42
今天又没买到回家的火车票......
我表示很闹心,最近正好在研究知乎助手的那个小爬虫,看到了splinter这个库,这个库主要运用于前端测试的小工具,但是也可以和爬虫结合起来进行一些信息抓取的工作.
其实原理很简单就是找到相应按钮的id然后调用点击函数,在你想填入文字的edit框中添加相应的内容就ok了,只不过不需要你手动去点,现在这个代码其实还可以优化,比如说可以将所有车次加入到一个字典中,之后你就直接输入车次就ok了,不用现在还得查车次的顺序和位置.
验证码这一块还是没有好的解决办法,也没有相应的开源库,只能手动验证或者链接打码兔的api都可以.
运行下方代码得手动输入一下账号和密码,还得登录12306找一下自己地点的cookies,方法很简单就是进入12306买票界面,输入完地点之后,找到cookies这个单词,点开之后里面会有_jc_save_开头的几个属性,记录一下就OK.
from splinter.browser import Browserfrom time import sleepusername = ""password = ""start = "%u5317%u4EAC%2CBJP"#北京end = "%u6C88%u9633%2CSYT"#沈阳time = "2016-01-23"order = 1#预订第一个车次,如果为0则预订离现在时间最近有票的车次ticket_url = "https://kyfw.12306.cn/otn/leftTicket/init"login_url = "https://kyfw.12306.cn/otn/login/init"initmy_url = "https://kyfw.12306.cn/otn/index/initMy12306"def qiangpiao():global bb = Browser()b.visit(ticket_url)while b.is_text_present(u"登录"):sleep(1)b.find_by_text(u"登录").click()sleep(3)b.fill("loginUserDTO.user_name",username)sleep(1)b.fill("userDTO.password",password)sleep(1)print "等待验证码,自行输入..."sleep(10)if b.url == initmy_url:breaktry:b.visit(ticket_url)b.cookies.add({"_jc_save_fromDate":time})b.cookies.add({"_jc_save_fromStation":start})b.cookies.add({"_jc_save_toStation":end})b.reload()b.find_by_text(u"查询").click()if order != 0:while b.url == ticket_url:b.find_by_text(u"预订")[order-1].click()b.find_by_text(u"邓京东").click()else:while b.url == ticket_url:for i in b.find_by_text(u"预订"):i.click()b.find_by_text(u"邓京东").click()print "等待验证码,自行输入..."except Exception as e:print str(e)if __name__ == "__main__":qiangpiao()
0 0
- 自动买票工具 python-splinter
- 测试工具----splinter自动打开百度并搜索内容
- Splinter - Python的Web应用程序验收测试工具
- Python自动化测试工具Splinter简介和使用实例
- Python自动化测试工具Splinter简介和使用实例
- Python自动化测试工具Splinter简介和使用实例
- python安装splinter
- python splinter 火车票抢购
- splinter 网站测试工具简介
- python splinter安装与使用
- Python splinter安装与使用
- Splinter
- Splinter:测试网络应用的工具
- 测试工具----Splinter安装环境的配置
- python setuptools splinter安装报错UnicodeDecodeError
- Python的Web应用验收测试 Splinter
- python的splinter实现浏览器操作
- Python利用splinter实现浏览器自动化操作
- Your build settings specify a provisioning profile with the UUID, no provisioning profile was found
- mac Navicat Premium 破解过程
- Object-C @class与#import区别
- 前端神器-sublime text3插件安装及使用
- iOS 开发小技巧
- 自动买票工具 python-splinter
- 版本控制工具Git常用指令-Android学习笔记
- Mac 权限问题-Operation not permitted(EI Capitan)
- 【图灵】12月书讯:新书多娇
- Activity 状态保存
- 哈希表那些事
- Android APP测试的日志文件抓取
- px 与 dp, sp换算公式?
- 项目适配iOS9遇到的一些问题及解决办法