12306/README.md

115 lines
6.4 KiB
Markdown
Raw Normal View History

2019-04-01 14:04:43 +00:00
### 12306 购票小助手
#### python版本
- [x] 2.7.10 - 2.7.15
- [x] 3.6
- [ ] 2.7.9
2018-01-07 01:54:36 +00:00
2019-04-01 14:04:43 +00:00
#### 依赖库
- 验证码目前可以本地识别,需要下载模型,放于项目更目录,全部代码来源于此项目 [传送门](https://github.com/zhaipro/easy12306),表示感谢
2019-04-01 14:04:43 +00:00
```
PS:
1. 模型下载链接:https://pan.baidu.com/s/1rS155VjweWVWIJogakechA 密码:bmlm
群里面也可以下载
2019-04-01 14:04:43 +00:00
```
2019-04-03 15:29:50 +00:00
- 项目依赖包查看 requirements.txt
2019-01-23 04:28:41 +00:00
- 安装方法-Windows:
- 安装方法-Linux:
2019-04-01 14:04:43 +00:00
- root用户(避免多python环境产生问题): python2 -m pip install -i https://pypi.tuna.tsinghua.e -r requirements.txt
- 非root用户避免安装和运行时使用了不同环境: sudo python2 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
2018-01-07 01:54:36 +00:00
2019-04-01 14:04:43 +00:00
#### 项目使用说明
2019-01-16 03:19:32 +00:00
- 可以配置邮箱可以配置可以不配置配置邮箱的格式在yaml里面可以看到ex
- 可以配置server酱提醒推荐 [配置教程] (https://www.jianshu.com/p/8d10b5b9c4e3)
2018-01-14 09:34:59 +00:00
- 提交订单验证码哪里依赖打码兔,所以如果是订票遇到验证码的时候,没有打码兔是过不了的,不推荐手动,手动太慢
- 配置yaml文件的时候需注意空格和遵循yaml语法格式
2018-01-14 09:34:59 +00:00
2019-04-01 14:04:43 +00:00
#### 项目开始
2018-12-25 02:34:56 +00:00
- 服务器启动:
- 修改config/ticket_config.yaml文件按照提示更改自己想要的信息
2019-01-02 15:10:01 +00:00
- 运行根目录sudo python run.py即可开始
- 由于新增对时功能请务必用sudosudosudo 执行否则会报权限错误windows打开ide或者cmd请用管理员身份执行python run.py不需要加sudo
- 如果你的服务器安装了docker与docker-compose, 那么就可以通过`docker-compose`进行启动,`docker.sh`脚本对此进行了封装,可以通过如下命令进行启动
- 1、`sudo ./docker.sh run` #创建一个镜像并启动容器,如果镜像已经创建过了会直接启动容器。
2019-01-15 08:39:02 +00:00
- 2、`sudo ./docker.sh restart` #修改配置文件后,通过此名命令可重新加载容器运行
- 3、`sudo ./docker.sh rm` #删除容器
- 4、`sudo ./docker.sh drun` #后台运行容器
- 5、`sudo ./docker.sh logs` #在后台运行时,通过此命令查看运行的内容
2019-01-15 08:39:02 +00:00
- 注: 针对没有docker环境的同学提供了docker安装脚本(**<font color="red">centos7</font>**)
- `sudo ./docker_install_centos.sh`
- ~~注: 若只有docker没有docker-compose. 可通过`pip install docker-compose`进行下载~~
2018-01-08 14:09:33 +00:00
2019-04-01 14:04:43 +00:00
#### 目录对应说明
2018-01-08 14:14:30 +00:00
- agency - cdn代理
- config - 项目配置
- damatuCode - 打码兔接口
- init - 项目主运行目录
- myException - 异常
2019-04-01 14:04:43 +00:00
- myUrllib request网络请求库
2018-01-08 14:09:33 +00:00
2019-04-01 14:04:43 +00:00
#### 思路图
2019-04-23 12:20:19 +00:00
- ![image](https://github.com/testerSunshine/12306/blob/master/uml/uml.png)
2018-01-10 09:25:48 +00:00
2019-04-01 14:04:43 +00:00
#### 项目声明:
2019-01-17 11:51:40 +00:00
- 本软件只供学习交流使用,勿作为商业用途,交流群号
2019-01-12 09:47:37 +00:00
- 1群286271084(已满)
- 2群649992274(已满)
- 3群632501142(已满)
2019-01-14 10:13:00 +00:00
- 4群: 606340519(已满)
2019-01-16 03:19:32 +00:00
- 5群: 948526733(已满)
2019-01-14 10:13:00 +00:00
- 6群: 444101020(未满)
- 7群: 660689659(未满)
2019-01-08 09:04:40 +00:00
- 请不要重复加群,一个群就可以了,把机会留给更多人
2019-01-08 02:16:24 +00:00
- **进群先看公告!!!进群先看公告!!!进群先看公告!!! 重要的事情说三遍**
2018-01-09 15:12:22 +00:00
- 能为你抢到一张回家的票,是我最大的心愿
2018-01-07 01:54:36 +00:00
2019-04-01 14:04:43 +00:00
#### 日志列子
- 成功log如果是购票失败的请带上失败的log给我我尽力帮你调也可加群一起交流程序只是加速买票的过程并不一定能买到票
2019-04-01 14:04:43 +00:00
```
正在第355次查询 乘车日期: 2018-02-12 车次G4741,G2365,G1371,G1377,G1329 查询无票 代理设置 无 总耗时429ms
车次: G4741 始发车站: 上海 终点站: 邵阳 二等座:有
正在尝试提交订票...
尝试提交订单...
出票成功
排队成功, 当前余票还剩余: 359 张
正在使用自动识别验证码功能
验证码通过,正在提交订单
提交订单成功!
排队等待时间预计还剩 -12 ms
排队等待时间预计还剩 -6 ms
排队等待时间预计还剩 -7 ms
排队等待时间预计还剩 -4 ms
排队等待时间预计还剩 -4 ms
恭喜您订票成功订单号为EB52743573, 请立即打开浏览器登录12306访问未完成订单在30分钟内完成支付
```
#### 使用帮助(一些安装问题和使用反馈较多的问题)
- 测试邮箱是否可用 [邮箱配置问题看issues](https://github.com/testerSunshine/12306/issues/107)
- 学生票issues [学生票修改](https://github.com/testerSunshine/12306/issues/47)
- 依赖安装不对的问题ImportError[requirements.txt问题](https://github.com/testerSunshine/12306/issues/91)
- 若快豆子疑问 [点我](https://github.com/testerSunshine/12306/issues/67)
- IOError: 【Errno 0】 Error 问题 [点我](https://github.com/testerSunshine/12306/issues/159)
- 测试下单接口是否可用有两个下单接口随便用哪个都ok
- 如果下载验证码过期或者下载失败的问题应该是12306封ip的策略多重试几次12306现在封服务器(阿里云和腾讯云)ip比较严重尽量不要放在服务器里面
- 目前12306对服务器ip比较敏感大家还是在自己家里挂着吧
- 如果想使用此项目的gui版本请加群获取链接 [gui文档](GuiHelp.md) 或者gui专用群499098551
2019-01-16 06:37:46 +00:00
```
mac gui and windows gui 下载链接https://pan.baidu.com/s/1SbVJWxiwP27yb8HUi1kzDQ 密码:41wp
```
- 自动更换ip软件目前已支持TPLINK和小米路由器只限家庭网络[点我跳转](https://github.com/testerSunshine/AutoRouterIP)
- 关于登录接口需要识别DEVICES_ID的情况可以使用本地打开12306在任意一接口里面抓取DEVICES_ID填于login.py文件中的141行
- `原来的 devicesId = eval(devicesIdRsp.split("(")[1].split(")")[0].replace("'", ""))["dfp"]`
- `更换为 devicesId = 刚才抓取的DEVICES_ID填上即可`
- 浏览器截图
![image](https://github.com/testerSunshine/12306/blob/master/uml/REIL_DEVICEID.png)
2019-04-01 14:04:43 +00:00
#### 感谢一下小伙伴对本项目提供的帮助
- @sun7127@126.com
- @ 才
- @[MonsterTan](https://github.com/MonsterTan)
- 以及所有为此项目提供pr的同学
2019-04-01 14:04:43 +00:00
#### 更新日志
- [更新日志](Update.md)