Python 板


LINE

各位大神好 新手如我最近用selenium写了一个自动输入个人资料的小爬虫,只有验证码部分是手动输 入,输入完验证码之後就会自动跑完剩下的流程并完成订票,code部分只有.get , find_ element , send_key跟click 之前有听说,只要验证码是手动输入就没有违法问题,想确认这样是否真的没问题,感谢 各位 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.175.54
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1510108792.A.296.html
1F:推 wennie0433: 这事情我也干过XD 後来发现人多网站都会挂就懒得用了 11/08 10:45
2F:→ wennie0433: 应该是没有违法 除非破解验证码 11/08 10:46
3F:推 neil987: 抢票 就是要做验证码识别 不过通常网站挂掉比较无解 11/08 11:05
4F:推 vi000246: 我之前有去pttlifelaw板问过了 你可以爬文看看 11/08 11:20
5F:推 f496328mm: 验证码识别蛮简单的,我有做一个 11/08 12:29
6F:→ kh555069: 之前有看过vi大的讨论串,那位回文的大大好像认定这样是 11/08 13:15
7F:→ kh555069: 违法 11/08 13:15
8F:→ uranusjr: 抢票的 bottleneck 从来都不是输入资料的手速啊... 11/08 16:41
9F:推 HenryLiKing: 楼上那句是什麽意思呀 11/08 16:58
10F:→ HenryLiKing: 我查翻译是 瓶颈 的意思耶(?) 11/08 16:58
11F:→ swallowcc: 意思就是问题一直都不是在输入资料的速度R 11/08 19:56
12F:→ vi000246: 但是开多线程可以赌赌看 一定比手动抢到的机会大 11/08 20:22
13F:推 fordpines: 验证码识别是用pytesser做的? 有点兴趣 11/08 22:16
14F:推 Sunal: 人家网站塞爆你输入多快也没用 11/08 22:34
15F:→ Sunal: 但是如果你用多开 这就有问题了 11/08 22:34
16F:→ kh555069: 感谢各位大大的回覆,我知道这种程度没办法抢演唱会等 11/09 02:22
17F:→ kh555069: 级的票。能帮家人抢到高铁票就够了,我只是想确认抢个2~ 11/09 02:22
18F:→ kh555069: 3张会不会出事 11/09 02:22
19F:→ neil987: 高铁票需要抢吗QQ 11/09 06:54
20F:→ kh555069: 要啊QQ 学生票星期六早上本来还有7折时段,现在几乎没 11/09 08:58
21F:→ kh555069: 了QQ。上礼拜买早鸟 一张打折票都抢不到 11/09 08:58
22F:推 f496328mm: 验证码,自己做一个CNN就好了,麻烦的是,验证码是JS, 11/09 10:04
23F:→ f496328mm: 直接抓会一直变,我是用selenium截图後,再去处理 11/09 10:04
24F:→ f496328mm: 另外我是手动做train data,目前1万张 11/09 10:05
25F:推 goldflower: 这样标解答好累R 11/09 12:16
26F:推 f496328mm: 很累啊,我也试过一大堆方法,都有现成套件,但都有些 11/09 13:39
27F:→ f496328mm: 缺陷,结果都不好,demo时都很猛,实际上不见得好 11/09 13:39
28F:推 f496328mm: 标解答,也可以写成程式,尽量提高速度啦,我一开始一 11/09 13:41
29F:→ f496328mm: 天就可以1万张,5个验证码大约90%正确率,剩下就可以利 11/09 13:41
30F:→ f496328mm: 用台铁验证码系统,帮我上label啦 11/09 13:41
31F:推 f496328mm: 简单讲,对或错台铁会帮我判定,对的就存label,这样就 11/09 13:45
32F:→ f496328mm: 变成自动上label啦,data会越来越多,有点类似reinforc 11/09 13:45
33F:→ f496328mm: ement learning,当然这很像ddos攻击,是不太好啦 11/09 13:45
34F:推 alan23273850: 哇感谢f大开示!这种gen资料的方式太聪明了啦 11/09 15:54
35F:推 goldflower: 喔喔这蛮聪明的@@ 反正不用把正确率提到最高 自动化 11/09 16:19
36F:→ goldflower: 比较重要 11/09 16:19
37F:推 f496328mm: 之後你data越多,基本上准确率越高 11/09 16:23
38F:→ goldflower: 不过data越多 如果错的testing没有标解答进去的话 11/09 18:52
39F:→ goldflower: 照理说之後看到一样的验证码还是会认错 因为还是没学 11/09 18:52
40F:→ goldflower: 所以应该还是要把错的验证码存下来手动输入几个 11/09 18:52
41F:推 f496328mm: 还有一点是,在辨识之前,你的影像处理好不好,对之後 11/09 19:32
42F:→ f496328mm: 的辨识,影响很大 11/09 19:32
43F:→ f496328mm: 另外台铁算是最简单的验证码,有些连人都很难辨识 11/09 19:32
44F:推 bluecadence: 喂CNN影像基本上不必处理 顶多丢掉对辨识没帮助的彩 11/09 20:02
45F:→ bluecadence: 色 转成灰阶。五个字整张图喂进去练,99%辨识率很容 11/09 20:05
46F:→ bluecadence: 易。不要一直喂已经答对的图案,把辨识错误的图加进 11/09 20:06
47F:→ bluecadence: 去训练很重要 11/09 20:07
48F:→ bluecadence: training set 3000 张基本上就可以 95% 了 11/09 20:07
49F:推 f496328mm: 是一整张图辨识?我目前是切割,分开辨识 11/09 20:11
50F:→ bluecadence: 对不必切割 原图整张喂 11/09 20:22
51F:推 f496328mm: 了解,因为切割也很麻烦,台铁还算可以切,其他的很复 11/09 20:29
52F:→ f496328mm: 杂 11/09 20:29
53F:→ bluecadence: 用传统比对法 才有必要切割, 既然都用 cnn 了,就不 11/09 20:59
54F:→ bluecadence: 必多此一举了 :p 11/09 21:00
55F:→ vi000246: 想问台铁黏在一起的字怎麽切 想看看演算法 11/09 21:52
56F:→ vi000246: B大说不用切只要train 3000张 想问有范例吗 11/09 21:54
57F:→ vi000246: 我之前找到一篇文章 不用切的话要四万张才有9X%的成功率 11/09 22:05
58F:→ vi000246: 而且这验证码是自己产生自己训练的 跟抓别人的验证码 11/09 22:05
59F:→ vi000246: 手动标label的效率差很多 11/09 22:06
60F:推 neil987: 还是不太理解不切图的流程... 11/10 00:20
61F:→ neil987: 求b大解释大概流程 11/10 00:20
62F:推 aszx4510: 我猜是用image-to-text吧 先用CNN encoder 接着再使用 11/10 00:44
63F:→ aszx4510: RNN decoder 产生一串字串 11/10 00:45
64F:→ aszx4510: 如果可以肯定验证码必定五个字 那用传统CNN分类就好了 11/10 00:45
65F:推 alan23273850: 献丑一下,我之前用前处理+数字切割,再每个数字丢 11/10 01:06
66F:→ alan23273850: 进别人已经用tensorflow训练好的library去辨识,最 11/10 01:06
67F:→ alan23273850: 後再合起来,辨识率只有1/8。因为前处理弄得不好, 11/10 01:07
68F:→ alan23273850: 灰色的noise line其实跟数字很像,这学期正在学电脑 11/10 01:08
69F:→ alan23273850: 视觉,希望能对前处理改良,应该会有帮助,不过我觉 11/10 01:09
70F:→ alan23273850: 得还是不会比整张丢进 CNN 下去 train 还要好 11/10 01:09
71F:→ alan23273850: CNN 真的是一个大家都该会的东西呀...... 11/10 01:10
72F:推 f496328mm: 单纯用CNN做分类的话,5个数字,有10^5种组合耶,况且 11/10 07:00
73F:→ f496328mm: 有时是4个数字,有时是6个,真的可以不切割? 11/10 07:00
74F:推 f496328mm: alan,我的数字影像处理,切割+旋转,之後再用CNN,1万 11/10 07:10
75F:→ f496328mm: 张图,大约80~90%正确率 11/10 07:10
76F:→ f496328mm: 其实验证码的影像处理,网路上一大堆人做过,可以去找 11/10 07:11
77F:→ f496328mm: 找 11/10 07:11
78F:推 bluecadence: 如果会切图只辨识一个字母或数字,要训练 1~Nmax 字 11/10 08:48
79F:→ bluecadence: 流程一模一样,重点是cnn几层,模型怎麽建的。一般的 11/10 08:50
80F:→ bluecadence: 网站都是固定字数,可以针对特定网站训练。 11/10 08:50
81F:→ bluecadence: 我使用三层 conv layer 一层 fully connected 然後 11/10 08:56
82F:→ bluecadence: output layer 。 我针对两个网站都是五个字的图做解 11/10 08:56
83F:→ bluecadence: 析,每天抓上千笔资料 真的正确率就是 > 99% 很少看 11/10 08:57
84F:→ bluecadence: 见错误的。我也是写了这个tensorflow小程式 被 cnn 11/10 08:59
85F:→ bluecadence: 的威力吓到 开始小玩tensorflow 11/10 09:00
86F:→ bluecadence: 文字数字是非常有特徵的物件 辨识真的不难阿... 11/10 09:06
87F:→ bluecadence: 我不知道各位切图一个字後怎麽做cnn,我的作法是把 11/10 09:21
88F:→ bluecadence: 字母数字先向量化,整张图一维化,然後喂进 nn 这好 11/10 09:22
89F:→ bluecadence: 像是蛮标准的程序(之一)阿 11/10 09:22
90F:→ bluecadence: 而且如果需要穷尽所有样板可能性,才能让NN学会,你 11/10 09:30
91F:→ bluecadence: 需要的是一个完整可以比对的资料库,不是NN 11/10 09:30
92F:→ bluecadence: NN的概念不就是要举一反N吗,而不是举N反N 11/10 09:31
93F:→ bluecadence: 我的确相信 NN 在训练的过程中,把看过的东西都"记忆 11/10 09:38
94F:→ bluecadence: "下来了(在连结权重的网中),但你给他一张新的没看过 11/10 09:39
95F:→ bluecadence: 的五字辨识图,它的确帮你判断出来了,这是除了记忆 11/10 09:40
96F:→ bluecadence: 外,它也归类了辨识图中的一些文字数字特徵,然後给 11/10 09:41
97F:→ bluecadence: 出了正确答案。 11/10 09:41
98F:→ bluecadence: 神经网路怎麽学习的,最近读到一个 information 11/10 10:02
99F:→ bluecadence: bottleneck 的说法,我觉得还蛮有趣的,可以 google 11/10 10:02
100F:→ bluecadence: 关键字参考一下 11/10 10:03
101F:推 vi000246: 验证码有噪线、扭曲、不固定位置、颜色、相黏 11/10 11:33
102F:→ vi000246: 能直接喂资料的应该是比较简单的验证码吧? 11/10 11:33
103F:→ vi000246: 或是位置、扭曲都固定 但很难切割的验证码 11/10 11:34
104F:→ bluecadence: http://bsr.twse.com.tw/bshtm/ 11/10 11:35
105F:→ bluecadence: http://www.tpex.org.tw/web/stock/aftertrading/bro 11/10 11:36
106F:→ bluecadence: kerBS.php 11/10 11:36
107F:→ bluecadence: 我不知道这种算难还是不难? 11/10 11:36
108F:→ bluecadence: 位置不固定会旋转我觉得更应该不切割直接喂 11/10 11:44
109F:→ bluecadence: 这不就是cnn的优点强项吗? 11/10 11:45
110F:→ bluecadence: 人脸辨识 不在照片固定位置 角度不同 扭曲 不是都能 11/10 11:46
111F:→ bluecadence: 作到某种程度了吗? 11/10 11:46
112F:推 ron0803: B大是神,好强 11/10 12:14
113F:推 vi000246: 原来如此 谢谢B大说明 11/10 14:47
114F:推 f496328mm: 感谢开示 11/11 09:03
115F:推 f496328mm: 一维化,所以没有用到pooling? 11/11 09:32
116F:→ bluecadence: 推文打太快漏了字,一维化然後 reshape (所以还是二 11/11 10:27
117F:→ bluecadence: 维阵列) 抱歉让您误会 11/11 10:28
118F:→ bluecadence: 另外为什麽我说用有平移旋转更应该用cnn 请google关 11/11 10:30
119F:→ bluecadence: 键字 translation, rotation invariance + cnn 11/11 10:32
120F:推 f496328mm: blue大有github可以参考吗?感恩 11/11 11:23
121F:推 f496328mm: 问一个问题,图片本来不是2维吗?为什麽要先一维化,再 11/11 13:37
122F:→ f496328mm: 变2维?改变整张图的大小吗? 11/11 13:37
123F:→ bluecadence: 只是配合tensorflow语法保持弹性可以动态指定批次图 11/11 16:44
124F:→ bluecadence: 档数量。我短时间内并没有把程式码放在github开源的 11/11 16:46
125F:→ bluecadence: 打算。 11/11 16:46
126F:推 f496328mm: ok,那我自己研究看看 11/11 18:36
127F:推 goldflower: 噪点那些问题在资料量够多下照理说会自然在训练的过 11/13 11:24
128F:→ goldflower: 程中被忽视 所以那些不用太在意 11/13 11:24
129F:→ goldflower: 不过有前处理做好可能收敛更快吧 11/13 11:24
130F:→ goldflower: 改变整张图的大小也行啊 这样你一个CNN 就能应用在多 11/13 11:25
131F:→ goldflower: 个网站上 11/13 11:25
132F:→ goldflower: 不过数字数量不固定的问题可能比较麻烦 但是如果trai 11/13 11:28
133F:→ goldflower: ning data有这个资讯 那就可以串两个nn 一个先做好m 11/13 11:28
134F:→ goldflower: eta learning就能再丢到对应的CNN model 了 11/13 11:28
135F:推 alan23273850: 顺便再推台大李弘毅老师的机器学习课程,专门给初学 11/13 20:33
136F:→ alan23273850: 者听的,我这学期正在修,觉得获益良多,影片都在网 11/13 20:33
137F:→ alan23273850: 路上,老师常用有趣的比喻说明,完全不会打瞌睡 11/13 20:34
138F:→ alan23273850: 话说如果图不切割的话最後的输出不就要上万个class? 11/13 20:35
139F:→ bluecadence: 可以反问一下alan大 为何需要输出上万个class? 11/13 22:02
140F:→ bluecadence: 如果你认为切割後比较有效率 那就切割吧。同样的问题 11/13 22:04
141F:→ bluecadence: 可以有很多种不同的解法。我只是告诉你固定五的字的 11/13 22:05
142F:→ bluecadence: captcha,我可以不切割做辨识达到实战 >99% 的正确率 11/13 22:06
143F:→ bluecadence: 既然我不open source 你就当我唬烂嘴炮好了 :p 11/13 22:07
144F:推 f496328mm: 比较想问,如果没固定5个字的话,可以不切割吗?因为台 11/13 23:25
145F:→ f496328mm: 铁验证码,4~6个字 11/13 23:25
146F:→ f496328mm: 因为难一点的验证码,非常难切割,有些都黏在一起 11/13 23:26
147F:→ bluecadence: 那就把模型建成输出层输出六个字,把空白用 * 或随便 11/13 23:41
148F:→ bluecadence: 一个特殊字元代表。 你得到的答案会像这样 11/13 23:42
149F:→ bluecadence: *4A*QC 12CEK 5*DQE4 少於六个字的空白输出都会用* 11/13 23:43
150F:→ bluecadence: 也就是把空白当成一个字元 也给他一个向量 11/13 23:44
151F:→ bluecadence: 当然你回到网站输入验证码的时候要把*去掉 11/13 23:46
152F:→ bluecadence: 12CEKQ <- 刚刚少打一个字元 11/13 23:48
153F:→ bluecadence: 只要你的训练样本够 4~6 个字都有喂进去练就好 11/13 23:49
154F:→ bluecadence: 不过你训练样本的标示可能会些困难 需要斟酌 11/13 23:52
155F:→ bluecadence: 我没有试过,或许标示直接给四个字,尾巴填两格空白 11/13 23:56
156F:→ bluecadence: 五个字+一个空白 这样标 11/13 23:57
157F:→ bluecadence: 训练组这样标示,答案就会像这样 AXD2** 35CP* 11/13 23:59
158F:→ bluecadence: 35CPR* (刚刚漏字) 11/14 00:00
159F:→ bluecadence: 我是把标示都直接标在图档档名,所以不能用 * 代表 11/14 00:01
160F:→ bluecadence: 可以选择用 - 或 _ 代表空白 11/14 00:02
161F:→ bluecadence: 推文推的有点乱 忽略我第三行推文。总结就是用最大可 11/14 00:10
162F:→ bluecadence: 能的码数当作输出层的输出,训练组标示 四个字的用 11/14 00:11
163F:→ bluecadence: ABCD-- 五个字的 XQYZE- 六个字的 QWERTY 11/14 00:12
164F:→ bluecadence: 你的字元集Aa..Zz 0..9 之外再加上一个空白字元"-" 11/14 01:00
165F:推 alan23273850: 不切割的话一个class就对应到一个结果,000000~999 11/14 09:29
166F:→ alan23273850: 999不就多到爆炸?我以为CNN只能用在分类问题 11/14 09:29
167F:→ bluecadence: 我只能说你解captcha的模型有问题 随你要怎麽做就怎 11/14 09:51
168F:→ bluecadence: 麽做 建出的模型是要解决问题的 你想了一个解决不了 11/14 09:52
169F:→ bluecadence: 问题的模型 我也管不着 11/14 09:52
170F:→ bluecadence: 你可以继续困在你解决不了问题的思维里 请便 11/14 09:54
171F:→ bluecadence: 你不会做不切割不代表别人不会做 这种辨识码CNN出来 11/14 09:56
172F:→ bluecadence: 之後基本上根本可以废了 根本完全被破解了 11/14 09:57
173F:→ bluecadence: 不然你以为为何google要重搞 reCAPTCHA? 11/14 10:02
174F:→ bluecadence: 你已经落後三四年了 11/14 10:03
175F:→ bluecadence: 一个class对应一个字元 你是有几个字元阿? 11/14 10:10
176F:→ bluecadence: 你的问题是你不会设计输出层 就这样而已 11/14 10:20
177F:→ bluecadence: 要教NN举一反三很难 教人也是 11/14 10:44
178F:→ bluecadence: 网路上的例子都只开一条马路 不能自己开六条马路吗? 11/14 10:49
179F:→ bluecadence: "multiplexing" ... 11/14 10:50
180F:→ alan23273850: 大大别这麽凶,我毕竟初学,好奇问个问题而已 11/14 14:20
181F:推 aszx4510: alan大别灰心 我查到一个不用切字的做法 11/15 11:18
182F:→ aszx4510: https://github.com/CharlesLiuyx/verificationCode 11/15 11:18
183F:→ aszx4510: 我一开始也和你想的一样,使用简单的分类法,类别会很多 11/15 11:18
184F:→ aszx4510: 但其实可以转为multi-label的形式,详细方法就看code吧 11/15 11:19
185F:推 f496328mm: 这串讨论蛮不错的,讲了很多重点,感谢上面的大大 11/15 13:36
186F:→ kh555069: 虽然还是没得到明确答案,不过楼歪得很好XD感谢大大们 11/16 08:54
187F:→ kh555069: 的分享 11/16 08:54
188F:嘘 liang1230: 笑死 某B不懂装懂 把一堆cnn的缺点讲成优点 你知道新 11/16 21:40
189F:→ liang1230: 的架构capsule为何出来吗 呵呵 11/16 21:40
190F:→ Kazimir: 如果不切 输出层我猜有两种 一个是把label编码以後回归 11/19 02:00
191F:→ Kazimir: 这样子是6个输出 或者是onehot 这样是6*26*11(0-9 + *) 11/19 02:02
192F:→ Kazimir: 切割也没什麽错 这样的话一个nn就可以任意复用 11/19 02:03
193F:→ Kazimir: 脑袋不清楚 6*37(a-z 0-9 *)才对 11/19 02:21
194F:→ Kazimir: 当然我会倾向CNN-RNN这种架构 感觉比较有道理 11/19 02:23
195F:推 aszx4510: 推楼上,理论上CNN-RNN是通解,但我好奇这种架构是不是 11/20 13:33
196F:→ aszx4510: 需要更多training data呢XD 11/20 13:33
197F:推 Kazimir: 如果直接一起训练应该要吧? 11/24 21:45
198F:推 f496328mm: 切割有缺点,切的不好会影响结果,error会累加上去 11/28 21:19







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP