V-I-C-T-O-R / 12306

12306买票小工具
MIT License
674 stars 220 forks source link

抢到票了,分享下喜悦吧! #6

Open V-I-C-T-O-R opened 5 years ago

V-I-C-T-O-R commented 5 years ago

希望有通过工具抢到票的童鞋,留个名,哈哈!(要是没抢到过,就忽略吧,尴尬...)

V-I-C-T-O-R commented 5 years ago

@gueat 更新下代码咯,或者你自己抓包deviceId也行。

gueat commented 5 years ago

我更新了代码,然后刷票的速度好慢,刷票时间设置多少都没用

V-I-C-T-O-R commented 5 years ago

@gueat 看看有没有哪里配置错了或者ip有没有被封或者网络延迟严重等等

luochengyou commented 5 years ago

第1次尝试获取验证图片 正在获取验证码...

[Errno 2] No such file or directory: 'E:\qiangpiao\qp\train/image_captcha//pic\1.jpg'

验证码识别错误! 第2次尝试获取验证图片 正在获取验证码...

[Errno 2] No such file or directory: 'E:\qiangpiao\qp\train/image_captcha//pic\1.jpg'

验证码识别错误! 第3次尝试获取验证图片 正在获取验证码...

[Errno 2] No such file or directory: 'E:\qiangpiao\qp\train/image_captcha//pic\1.jpg'

验证码识别错误! 第4次尝试获取验证图片 正在获取验证码...

[Errno 2] No such file or directory: 'E:\qiangpiao\qp\train/image_captcha//pic\1.jpg'

验证码识别错误! 第5次尝试获取验证图片 正在获取验证码...

[Errno 2] No such file or directory: 'E:\qiangpiao\qp\train/image_captcha//pic\1.jpg'

验证码识别错误! 第6次尝试获取验证图片 正在获取验证码...

[Errno 2] No such file or directory: 'E:\qiangpiao\qp\train/image_captcha//pic\1.jpg'

验证码识别错误! 第7次尝试获取验证图片 E:\python\lib\site-packages\skimage\io_io.py:140: UserWarning: E:\qiangpiao\qp\train/image_captcha//pic\1.jpg is a low contrast image warn('%s is a low contrast image' % fname) 正在获取验证码...

前面找不到图片,找到了又说辨识度太低,怎么搞呀??萌新提问

V-I-C-T-O-R commented 5 years ago

@luochengyou 是你windows的环境路径识别不到造成的图片没有识别,先检查下环境路径问题咯

luochengyou commented 5 years ago

以上是应为12306\train\image_captcha下少了个pic文件夹,然后百度ai少了个识别文字 这下出现了下面的问题

正在登录... 第1次尝试获取验证图片 正在获取验证码... C:\Program Files\Python37\lib\site-packages\skimage\io_io.py:140: UserWarning: F:\qiangpiao\12306\train/image_captcha//pic\1.jpg is a low contrast image warn('%s is a low contrast image' % fname) C:\Program Files\Python37\lib\site-packages\skimage\io_io.py:140: UserWarning: F:\qiangpiao\12306\train/image_captcha//pic\1_5.jpg is a low contrast image warn('%s is a low contrast image' % fname) C:\Program Files\Python37\lib\site-packages\skimage\io_io.py:140: UserWarning: F:\qiangpiao\12306\train/image_captcha//pic\1_6.jpg is a low contrast image warn('%s is a low contrast image' % fname) C:\Program Files\Python37\lib\site-packages\skimage\io_io.py:140: UserWarning: F:\qiangpiao\12306\train/image_captcha//pic\1_7.jpg is a low contrast image warn('%s is a low contrast image' % fname) C:\Program Files\Python37\lib\site-packages\skimage\io_io.py:140: UserWarning: F:\qiangpiao\12306\train/image_captcha//pic\1_8.jpg is a low contrast image warn('%s is a low contrast image' % fname)

list index out of range

验证码识别错误!

这个该怎么解决呢,大专生硬件专业看这个不容易啊大佬

AlliotTech commented 5 years ago

刚 pull 下来的 登录失败。提示设备指纹失败

V-I-C-T-O-R commented 5 years ago

@AlliotTech @luochengyou 更新下代码

AlliotTech commented 5 years ago

登录成功

MOYU1992 commented 5 years ago

希望有通过工具抢到票的童鞋,留个名,哈哈!(要是没抢到过,就忽略吧,尴尬...)

登录状态失效是否要重新登录?

V-I-C-T-O-R commented 5 years ago

@MOYU1992 可以先查票,后登录。最好是先重新登录

lmzhangzong commented 5 years ago

启动后控制台没有任何异常信息只显示 "第20次尝试获取验证图片 正在获取验证码... 验证码识别错误! 验证码识别错误! 登录失败" 可能是什么引起的呢?

lmzhangzong commented 5 years ago

我手动试别图片一会报这个验证码试别错误

EthanYue commented 5 years ago

我想放到服务器上让他自动跑,但是用百度ai验证码识别不出来,手动输入的话又看不到图片,所以想把验证码图片保存到本地,然后查看图片再手动输入,但是每次下载图片的时候都失败了,不知道有没有什么方法可以保存图片

我是直接改了一处代码,将Capthca文件里的img.show(),改成了img.save("img.jpg"),r然后从服务器手动下载到本地去看的

V-I-C-T-O-R commented 5 years ago

@lmzhangzong 更新deviceId就行

V-I-C-T-O-R commented 5 years ago

@EthanYue 随你方便哈

sendyago commented 5 years ago

mac系统,手动识别验证码,每次都识别失败,眼看着都没问题就说是验证码识别失败,一直到登录失败,然后反复几次登录都是验证码识别失败,是怎么回事呢?程序哪里没配置好吗? 以下是终端复制的:

... 输入验证码索引(见上图,以','分割): 3,4 验证码坐标: 243, 50,22, 114 验证码识别错误! 第19次尝试获取验证图片 正在获取验证码...

            -----------------
            | 0 | 1 | 2 | 3 |
            -----------------
            | 4 | 5 | 6 | 7 |
            ----------------- 

输入验证码索引(见上图,以','分割): 1 验证码坐标: 116, 46 验证码识别错误! 第20次尝试获取验证图片 正在获取验证码...

            -----------------
            | 0 | 1 | 2 | 3 |
            -----------------
            | 4 | 5 | 6 | 7 |
            ----------------- 

输入验证码索引(见上图,以','分割): 4 验证码坐标: 22, 114 验证码识别错误! 验证码识别错误! 登录失败

V-I-C-T-O-R commented 5 years ago

@sendyago 更新代码。最好是自己抓包更新下获取deviceId的url,或者自己根据其他网上的url生成方法去自动生成改url

Bla1n commented 5 years ago

作者你好,为什么我测试抢一张还有很多余票的车次的票不应该是刷票第一次就能下订单吗?这都刷了好多了还没下订单 图片

Bla1n commented 5 years ago

我通过12306app看的,那天还有很多票,配置应该也没错吧 图片

V-I-C-T-O-R commented 5 years ago

@Bla1n SEAT_TYPE_CODE没有数字0这个选项,二等座是大写的O

Bla1n commented 5 years ago

@V-I-C-T-O-R 感谢,实力眼瞎,hhh

Sitlos commented 5 years ago

AI似乎不起作用,要手动。

Sitlos commented 5 years ago

mac系统,手动识别验证码,每次都识别失败,眼看着都没问题就说是验证码识别失败,一直到登录失败,然后反复几次登录都是验证码识别失败,是怎么回事呢?程序哪里没配置好吗? 以下是终端复制的:

... 输入验证码索引(见上图,以','分割): 3,4 验证码坐标: 243, 50,22, 114 验证码识别错误! 第19次尝试获取验证图片 正在获取验证码...

            -----------------
            | 0 | 1 | 2 | 3 |
            -----------------
            | 4 | 5 | 6 | 7 |
            ----------------- 

输入验证码索引(见上图,以','分割): 1 验证码坐标: 116, 46 验证码识别错误! 第20次尝试获取验证图片 正在获取验证码...

            -----------------
            | 0 | 1 | 2 | 3 |
            -----------------
            | 4 | 5 | 6 | 7 |
            ----------------- 

输入验证码索引(见上图,以','分割): 4 验证码坐标: 22, 114 验证码识别错误! 验证码识别错误! 登录失败

我也遇到这个问题,打开更新IP池就ok了。

V-I-C-T-O-R commented 5 years ago

@Sitlos AI的识别经度普遍在12306的通用识别上不是很高,百度的稍微高点。登录失败啥的可以手动更新下deviceUrl,希望对你用

zhoumh1988 commented 4 years ago

image

为啥我总卡在获取验证码这里,执行了很多次都是这样,手动点击那个链接可以生成验证码,程序一跑就报302重定向问题。请问如何解决,为春运做准备啊~

我的配置如下,我用的百度AI识别

SELECT_AUTO_CHECK_CAPTHCA = 3
IMAGE_OCR_SERVICE_CHOOSE = 1
V-I-C-T-O-R commented 4 years ago

@zhoumh1988 本地调用没有问题,只是准确率不高,并没有出现你的302情况(可能12306把你的ip拉进小黑屋了)。更新下代码或者你可以自己更新下deviceId QQ截图20191127172625

zhoumh1988 commented 4 years ago

@V-I-C-T-O-R 我调整了下代码,把时间戳改为动态的了,可以访问了,不过302的概率依然很高。 另外个问题,我发现numpy需要调整成1.15.0版本的,要不然报错。 百度AI我是调通了,可是识别没有你说的这么精准,我尝试了几次都是找出:,没有识别出要找的东西。 然后我改为手动去点击,每次都说验证码错误,我看了官网,点击验证码貌似没有请求验证(captchaCheck)那一步骤了,直接是请求登录接口。我又修改了逻辑,每次请求都说验证码错误。

我是今天fork的~最新版本不是master分支吗?

zhoumh1988 commented 4 years ago

image 我重新下载了最新的代码,可以跑了,不过提交订单那一步骤报错了。如何解决呢?

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 你浏览器打开12306试试,看看是不是能正常登录,正常提交。很大概率是被小黑屋了

zhoumh1988 commented 4 years ago

我试验了下,浏览器可以正常提交订单。你本地可以正常提交订单吗?我发你邮件了,加我微信聊吧

zhoumh1988 commented 4 years ago

image 貌似上面也有人遇到了,已经抢票成功了,为何又去提交1次?

另外,您提供的twilio是否可直接使用?我自己申请了,发现收不到验证码,没办法注册成功,不知道是不是小米手机给屏蔽了。

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 看你的异常invalid username,发送短信部分没有捕获异常,所以重试了。你的twilio配置不正确,具体的得你自己摸索。如果twilio本身现在限制了的话,那就没办法了

zhoumh1988 commented 4 years ago

我已调通,亲测可用,感谢 @V-I-C-T-O-R 的分享。

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 不用客气,能帮到你就好,都是为了回家。注意自己大概每五天更换一次deviceId url (ps:其它大佬的自动生成url的方式之前测试过没有通过,你可以找找自动生成的方式)

zhoumh1988 commented 4 years ago

这个url的生成规则能补充下吗?如果我手动替换的话,从哪里获取这个url?

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 浏览器打开12306之前,先开启debug模式,例如在chrome浏览器的空白页面右键选择inspect,会出现工具框。选择network标签,在filter框中输入device进行过滤准备,然后输入12306网址开始访问12306,然后那个url就会被过滤出来了。祝你好运 QQ截图20191128164010

zhoumh1988 commented 4 years ago

@V-I-C-T-O-R 动态获取deviceId我已经pullrequest了,你测测看,原有代码我只是注释了,没有删除。

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 非常感谢你的贡献!代码可用。但是有也有几点问题:

  1. chromedriver根据不同的操作系统有不同的版本问题,需要修改一下
  2. 如你所说,selenium每次弹出来确实有点苦恼 其它问题暂时没有发现,待观察
V-I-C-T-O-R commented 4 years ago

@zhoumh1988 更改了你的部分逻辑,测试的时候发现重启打开浏览器次数多了之后,12306加入小黑屋。具体细节需要再测试

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 测试了,回退了。通过driver获取cookie频繁的话登录会被重定向,暂时先改回原来的逻辑了,不好意思

zhoumh1988 commented 4 years ago

@V-I-C-T-O-R 好的,我也没做过多的测试,只是自己跑了几次,觉得通了就pull了。

  1. 忘记适配windows版本了,sorry。selenium弹出这个问题其实可以修改,我只是懒的弄了,毕竟我自己用,我可以接受~😄
  2. 打开多次被加入小黑屋?是账号还是你自己的ip?我加了proxy设置,如果是账号的话,这个应该是测试太频繁导致,任何获取cookie方式过多都会被加入小黑屋的,因为服务端不知道你是从哪里来的请求,他只能根据请求包来做判定(ip,系统类型,浏览器等)
  3. 重定向这个问题应该跟小黑屋是一个性质的吧?

我觉得如果使用的话,应该还是能用的。你可以打一个分支,或者把我的地址放到你的readme里去,谁想用就fork。

V-I-C-T-O-R commented 4 years ago

@zhoumh1988 你的代码上周就已经合并过来了,平台适配和浏览器静默改了,只不过方法本身没有被调用而已,你可以看一下。如果他人有兴趣的话,可以直接在代码里面换个方法就行了。互相帮助,人人有责

liyanfei123 commented 4 years ago

你好,请问一下,你这个登陆重定向的问题找到原因了嘛?

15082579728 commented 4 years ago

老板,总个数啥原因啊,也不让我输,直接报错 image

Joker-Cch commented 4 years ago

MAC 手动输入验证码报错怎么解决?

V-I-C-T-O-R commented 4 years ago

@15082579728 验证码图片url没有改变,疑似12306小黑屋了。建议浏览器登录下单试试看流程是否能通 @Joker-Cch 请贴出异常或更新设备指纹url再试

STDSuperman commented 4 years ago

一般什么时候在放票前多久开始抢不会被封呢

ybyangjian commented 4 years ago

获取乘客信息失败,过一会儿显示抢到票了。结果要买票的人错了,得重新来。不过还是感谢大佬

zhaofuli123 commented 4 years ago

获取乘客信息失败可能是啥原因呢,,