台鐵車站資訊懶人包

python搶票程式、搶票程式下載、手機搶票程式在PTT/mobile01評價與討論,在ptt社群跟網路上大家這樣說

python搶票程式在[問題] 用 selenium 搶票- 看板Python

作者[問題] 用 selenium 搶票
標題kh555069 (yuan)
時間2017-11-08 10:39:50 UTC


各位大神好
新手如我最近用selenium寫了一個自動輸入個人資料的小爬蟲,只有驗證碼部分是手動輸
入,輸入完驗證碼之後就會自動跑完剩下的流程並完成訂票,code部分只有.get , find_
element , send_key跟click

之前有聽說,只要驗證碼是手動輸入就沒有違法問題,想確認這樣是否真的沒問題,感謝
各位

--

推 wennie0433: 這事情我也幹過XD 後來發現人多網站都會掛就懶得用了 11/08 10:45
→ wennie0433: 應該是沒有違法 除非破解驗證碼 11/08 10:46
推 neil987: 搶票 就是要做驗證碼識別 不過通常網站掛掉比較無解 11/08 11:05
推 vi000246: 我之前有去pttlifelaw板問過了 你可以爬文看看 11/08 11:20
推 f496328mm: 驗證碼識別蠻簡單的,我有做一個 11/08 12:29
→ kh555069: 之前有看過vi大的討論串,那位回文的大大好像認定這樣是 11/08 13:15
→ kh555069: 違法 11/08 13:15
→ uranusjr: 搶票的 bottleneck 從來都不是輸入資料的手速啊... 11/08 16:41
推 HenryLiKing: 樓上那句是什麼意思呀 11/08 16:58
→ HenryLiKing: 我查翻譯是 瓶頸 的意思耶(?) 11/08 16:58
→ swallowcc: 意思就是問題一直都不是在輸入資料的速度R 11/08 19:56
→ vi000246: 但是開多線程可以賭賭看 一定比手動搶到的機會大 11/08 20:22
推 fordpines: 驗證碼識別是用pytesser做的? 有點興趣 11/08 22:16
推 Sunal: 人家網站塞爆你輸入多快也沒用 11/08 22:34
→ Sunal: 但是如果你用多開 這就有問題了 11/08 22:34
→ kh555069: 感謝各位大大的回覆,我知道這種程度沒辦法搶演唱會等 11/09 02:22
→ kh555069: 級的票。能幫家人搶到高鐵票就夠了,我只是想確認搶個2~ 11/09 02:22
→ kh555069: 3張會不會出事 11/09 02:22
→ neil987: 高鐵票需要搶嗎QQ 11/09 06:54
→ kh555069: 要啊QQ 學生票星期六早上本來還有7折時段,現在幾乎沒 11/09 08:58
→ kh555069: 了QQ。上禮拜買早鳥 一張打折票都搶不到 11/09 08:58
推 f496328mm: 驗證碼,自己做一個CNN就好了,麻煩的是,驗證碼是JS, 11/09 10:04
→ f496328mm: 直接抓會一直變,我是用selenium截圖後,再去處理 11/09 10:04
→ f496328mm: 另外我是手動做train data,目前1萬張 11/09 10:05
推 goldflower: 這樣標解答好累R 11/09 12:16
推 f496328mm: 很累啊,我也試過一大堆方法,都有現成套件,但都有些 11/09 13:39
→ f496328mm: 缺陷,結果都不好,demo時都很猛,實際上不見得好 11/09 13:39
推 f496328mm: 標解答,也可以寫成程式,盡量提高速度啦,我一開始一 11/09 13:41
→ f496328mm: 天就可以1萬張,5個驗證碼大約90%正確率,剩下就可以利 11/09 13:41
→ f496328mm: 用台鐵驗證碼系統,幫我上label啦 11/09 13:41
推 f496328mm: 簡單講,對或錯台鐵會幫我判定,對的就存label,這樣就 11/09 13:45
→ f496328mm: 變成自動上label啦,data會越來越多,有點類似reinforc 11/09 13:45
→ f496328mm: ement learning,當然這很像ddos攻擊,是不太好啦 11/09 13:45
推 alan23273850: 哇感謝f大開示!這種gen資料的方式太聰明了啦 11/09 15:54
推 goldflower: 喔喔這蠻聰明的@@ 反正不用把正確率提到最高 自動化 11/09 16:19
→ goldflower: 比較重要 11/09 16:19
推 f496328mm: 之後你data越多,基本上準確率越高 11/09 16:23
→ goldflower: 不過data越多 如果錯的testing沒有標解答進去的話 11/09 18:52
→ goldflower: 照理說之後看到一樣的驗證碼還是會認錯 因為還是沒學 11/09 18:52
→ goldflower: 所以應該還是要把錯的驗證碼存下來手動輸入幾個 11/09 18:52
推 f496328mm: 還有一點是,在辨識之前,你的影像處理好不好,對之後 11/09 19:32
→ f496328mm: 的辨識,影響很大 11/09 19:32
→ f496328mm: 另外台鐵算是最簡單的驗證碼,有些連人都很難辨識 11/09 19:32
推 bluecadence: 餵CNN影像基本上不必處理 頂多丟掉對辨識沒幫助的彩 11/09 20:02
→ bluecadence: 色 轉成灰階。五個字整張圖餵進去練,99%辨識率很容 11/09 20:05
→ bluecadence: 易。不要一直餵已經答對的圖案,把辨識錯誤的圖加進 11/09 20:06
→ bluecadence: 去訓練很重要 11/09 20:07
→ bluecadence: training set 3000 張基本上就可以 95% 了 11/09 20:07
推 f496328mm: 是一整張圖辨識?我目前是切割,分開辨識 11/09 20:11
→ bluecadence: 對不必切割 原圖整張餵 11/09 20:22
推 f496328mm: 了解,因為切割也很麻煩,台鐵還算可以切,其他的很複 11/09 20:29
→ f496328mm: 雜 11/09 20:29
→ bluecadence: 用傳統比對法 才有必要切割, 既然都用 cnn 了,就不 11/09 20:59
→ bluecadence: 必多此一舉了 :p 11/09 21:00
→ vi000246: 想問台鐵黏在一起的字怎麼切 想看看演算法 11/09 21:52
→ vi000246: B大說不用切只要train 3000張 想問有範例嗎 11/09 21:54
→ vi000246: 我之前找到一篇文章 不用切的話要四萬張才有9X%的成功率 11/09 22:05
→ vi000246: 而且這驗證碼是自己產生自己訓練的 跟抓別人的驗證碼 11/09 22:05
→ vi000246: 手動標label的效率差很多 11/09 22:06
推 neil987: 還是不太理解不切圖的流程... 11/10 00:20
→ neil987: 求b大解釋大概流程 11/10 00:20
推 aszx4510: 我猜是用image-to-text吧 先用CNN encoder 接著再使用 11/10 00:44
→ aszx4510: RNN decoder 產生一串字串 11/10 00:45
→ aszx4510: 如果可以肯定驗證碼必定五個字 那用傳統CNN分類就好了 11/10 00:45
推 alan23273850: 獻醜一下,我之前用前處理+數字切割,再每個數字丟 11/10 01:06
→ alan23273850: 進別人已經用tensorflow訓練好的library去辨識,最 11/10 01:06
→ alan23273850: 後再合起來,辨識率只有1/8。因為前處理弄得不好, 11/10 01:07
→ alan23273850: 灰色的noise line其實跟數字很像,這學期正在學電腦 11/10 01:08
→ alan23273850: 視覺,希望能對前處理改良,應該會有幫助,不過我覺 11/10 01:09
→ alan23273850: 得還是不會比整張丟進 CNN 下去 train 還要好 11/10 01:09
→ alan23273850: CNN 真的是一個大家都該會的東西呀...... 11/10 01:10
推 f496328mm: 單純用CNN做分類的話,5個數字,有10^5種組合耶,況且 11/10 07:00
→ f496328mm: 有時是4個數字,有時是6個,真的可以不切割? 11/10 07:00
推 f496328mm: alan,我的數字影像處理,切割+旋轉,之後再用CNN,1萬 11/10 07:10
→ f496328mm: 張圖,大約80~90%正確率 11/10 07:10
→ f496328mm: 其實驗證碼的影像處理,網路上一大堆人做過,可以去找 11/10 07:11
→ f496328mm: 找 11/10 07:11
推 bluecadence: 如果會切圖只辨識一個字母或數字,要訓練 1~Nmax 字 11/10 08:48
→ bluecadence: 流程一模一樣,重點是cnn幾層,模型怎麼建的。一般的 11/10 08:50
→ bluecadence: 網站都是固定字數,可以針對特定網站訓練。 11/10 08:50
→ bluecadence: 我使用三層 conv layer 一層 fully connected 然後 11/10 08:56
→ bluecadence: output layer 。 我針對兩個網站都是五個字的圖做解 11/10 08:56
→ bluecadence: 析,每天抓上千筆資料 真的正確率就是 > 99% 很少看 11/10 08:57
→ bluecadence: 見錯誤的。我也是寫了這個tensorflow小程式 被 cnn 11/10 08:59
→ bluecadence: 的威力嚇到 開始小玩tensorflow 11/10 09:00
→ bluecadence: 文字數字是非常有特徵的物件 辨識真的不難阿... 11/10 09:06
→ bluecadence: 我不知道各位切圖一個字後怎麼做cnn,我的作法是把 11/10 09:21
→ bluecadence: 字母數字先向量化,整張圖一維化,然後餵進 nn 這好 11/10 09:22
→ bluecadence: 像是蠻標準的程序(之一)阿 11/10 09:22
→ bluecadence: 而且如果需要窮盡所有樣板可能性,才能讓NN學會,你 11/10 09:30
→ bluecadence: 需要的是一個完整可以比對的資料庫,不是NN 11/10 09:30
→ bluecadence: NN的概念不就是要舉一反N嗎,而不是舉N反N 11/10 09:31
→ bluecadence: 我的確相信 NN 在訓練的過程中,把看過的東西都"記憶 11/10 09:38
→ bluecadence: "下來了(在連結權重的網中),但你給他一張新的沒看過 11/10 09:39
→ bluecadence: 的五字辨識圖,它的確幫你判斷出來了,這是除了記憶 11/10 09:40
→ bluecadence: 外,它也歸類了辨識圖中的一些文字數字特徵,然後給 11/10 09:41
→ bluecadence: 出了正確答案。 11/10 09:41
→ bluecadence: 神經網路怎麼學習的,最近讀到一個 information 11/10 10:02
→ bluecadence: bottleneck 的說法,我覺得還蠻有趣的,可以 google 11/10 10:02
→ bluecadence: 關鍵字參考一下 11/10 10:03
推 vi000246: 驗證碼有噪線、扭曲、不固定位置、顏色、相黏 11/10 11:33
→ vi000246: 能直接餵資料的應該是比較簡單的驗證碼吧? 11/10 11:33
→ vi000246: 或是位置、扭曲都固定 但很難切割的驗證碼 11/10 11:34
→ bluecadence: http://bsr.twse.com.tw/bshtm/ 11/10 11:35
→ bluecadence: http://www.tpex.org.tw/web/stock/aftertrading/bro 11/10 11:36
→ bluecadence: kerBS.php 11/10 11:36
→ bluecadence: 我不知道這種算難還是不難? 11/10 11:36
→ bluecadence: 位置不固定會旋轉我覺得更應該不切割直接餵 11/10 11:44
→ bluecadence: 這不就是cnn的優點強項嗎? 11/10 11:45
→ bluecadence: 人臉辨識 不在照片固定位置 角度不同 扭曲 不是都能 11/10 11:46
→ bluecadence: 作到某種程度了嗎? 11/10 11:46
推 ron0803: B大是神,好強 11/10 12:14
推 vi000246: 原來如此 謝謝B大說明 11/10 14:47
推 f496328mm: 感謝開示 11/11 09:03
推 f496328mm: 一維化,所以沒有用到pooling? 11/11 09:32
→ bluecadence: 推文打太快漏了字,一維化然後 reshape (所以還是二 11/11 10:27
→ bluecadence: 維陣列) 抱歉讓您誤會 11/11 10:28
→ bluecadence: 另外為什麼我說用有平移旋轉更應該用cnn 請google關 11/11 10:30
→ bluecadence: 鍵字 translation, rotation invariance + cnn 11/11 10:32
推 f496328mm: blue大有github可以參考嗎?感恩 11/11 11:23
推 f496328mm: 問一個問題,圖片本來不是2維嗎?為什麼要先一維化,再 11/11 13:37
→ f496328mm: 變2維?改變整張圖的大小嗎? 11/11 13:37
→ bluecadence: 只是配合tensorflow語法保持彈性可以動態指定批次圖 11/11 16:44
→ bluecadence: 檔數量。我短時間內並沒有把程式碼放在github開源的 11/11 16:46
→ bluecadence: 打算。 11/11 16:46
推 f496328mm: ok,那我自己研究看看 11/11 18:36
推 goldflower: 噪點那些問題在資料量夠多下照理說會自然在訓練的過 11/13 11:24
→ goldflower: 程中被忽視 所以那些不用太在意 11/13 11:24
→ goldflower: 不過有前處理做好可能收斂更快吧 11/13 11:24
→ goldflower: 改變整張圖的大小也行啊 這樣你一個CNN 就能應用在多 11/13 11:25
→ goldflower: 個網站上 11/13 11:25
→ goldflower: 不過數字數量不固定的問題可能比較麻煩 但是如果trai 11/13 11:28
→ goldflower: ning data有這個資訊 那就可以串兩個nn 一個先做好m 11/13 11:28
→ goldflower: eta learning就能再丟到對應的CNN model 了 11/13 11:28
推 alan23273850: 順便再推台大李弘毅老師的機器學習課程,專門給初學 11/13 20:33
→ alan23273850: 者聽的,我這學期正在修,覺得獲益良多,影片都在網 11/13 20:33
→ alan23273850: 路上,老師常用有趣的比喻說明,完全不會打瞌睡 11/13 20:34
→ alan23273850: 話說如果圖不切割的話最後的輸出不就要上萬個class? 11/13 20:35
→ bluecadence: 可以反問一下alan大 為何需要輸出上萬個class? 11/13 22:02
→ bluecadence: 如果你認為切割後比較有效率 那就切割吧。同樣的問題 11/13 22:04
→ bluecadence: 可以有很多種不同的解法。我只是告訴你固定五的字的 11/13 22:05
→ bluecadence: captcha,我可以不切割做辨識達到實戰 >99% 的正確率 11/13 22:06
→ bluecadence: 既然我不open source 你就當我唬爛嘴砲好了 :p 11/13 22:07
推 f496328mm: 比較想問,如果沒固定5個字的話,可以不切割嗎?因為台 11/13 23:25
→ f496328mm: 鐵驗證碼,4~6個字 11/13 23:25
→ f496328mm: 因為難一點的驗證碼,非常難切割,有些都黏在一起 11/13 23:26
→ bluecadence: 那就把模型建成輸出層輸出六個字,把空白用 * 或隨便 11/13 23:41
→ bluecadence: 一個特殊字元代表。 你得到的答案會像這樣 11/13 23:42
→ bluecadence: *4A*QC 12CEK 5*DQE4 少於六個字的空白輸出都會用* 11/13 23:43
→ bluecadence: 也就是把空白當成一個字元 也給他一個向量 11/13 23:44
→ bluecadence: 當然你回到網站輸入驗證碼的時候要把*去掉 11/13 23:46
→ bluecadence: 12CEKQ <- 剛剛少打一個字元 11/13 23:48
→ bluecadence: 只要你的訓練樣本夠 4~6 個字都有餵進去練就好 11/13 23:49
→ bluecadence: 不過你訓練樣本的標示可能會些困難 需要斟酌 11/13 23:52
→ bluecadence: 我沒有試過,或許標示直接給四個字,尾巴填兩格空白 11/13 23:56
→ bluecadence: 五個字+一個空白 這樣標 11/13 23:57
→ bluecadence: 訓練組這樣標示,答案就會像這樣 AXD2** 35CP* 11/13 23:59
→ bluecadence: 35CPR* (剛剛漏字) 11/14 00:00
→ bluecadence: 我是把標示都直接標在圖檔檔名,所以不能用 * 代表 11/14 00:01
→ bluecadence: 可以選擇用 - 或 _ 代表空白 11/14 00:02
→ bluecadence: 推文推的有點亂 忽略我第三行推文。總結就是用最大可 11/14 00:10
→ bluecadence: 能的碼數當作輸出層的輸出,訓練組標示 四個字的用 11/14 00:11
→ bluecadence: ABCD-- 五個字的 XQYZE- 六個字的 QWERTY 11/14 00:12
→ bluecadence: 你的字元集Aa..Zz 0..9 之外再加上一個空白字元"-" 11/14 01:00
推 alan23273850: 不切割的話一個class就對應到一個結果,000000~999 11/14 09:29
→ alan23273850: 999不就多到爆炸?我以為CNN只能用在分類問題 11/14 09:29
→ bluecadence: 我只能說你解captcha的模型有問題 隨你要怎麼做就怎 11/14 09:51
→ bluecadence: 麼做 建出的模型是要解決問題的 你想了一個解決不了 11/14 09:52
→ bluecadence: 問題的模型 我也管不著 11/14 09:52
→ bluecadence: 你可以繼續困在你解決不了問題的思維裡 請便 11/14 09:54
→ bluecadence: 你不會做不切割不代表別人不會做 這種辨識碼CNN出來 11/14 09:56
→ bluecadence: 之後基本上根本可以廢了 根本完全被破解了 11/14 09:57
→ bluecadence: 不然你以為為何google要重搞 reCAPTCHA? 11/14 10:02
→ bluecadence: 你已經落後三四年了 11/14 10:03
→ bluecadence: 一個class對應一個字元 你是有幾個字元阿? 11/14 10:10
→ bluecadence: 你的問題是你不會設計輸出層 就這樣而已 11/14 10:20
→ bluecadence: 要教NN舉一反三很難 教人也是 11/14 10:44
→ bluecadence: 網路上的例子都只開一條馬路 不能自己開六條馬路嗎? 11/14 10:49
→ bluecadence: "multiplexing" ... 11/14 10:50
→ alan23273850: 大大別這麼凶,我畢竟初學,好奇問個問題而已 11/14 14:20
推 aszx4510: alan大別灰心 我查到一個不用切字的做法 11/15 11:18
→ aszx4510: https://github.com/CharlesLiuyx/verificationCode 11/15 11:18
→ aszx4510: 我一開始也和你想的一樣,使用簡單的分類法,類別會很多 11/15 11:18
→ aszx4510: 但其實可以轉為multi-label的形式,詳細方法就看code吧 11/15 11:19
推 f496328mm: 這串討論蠻不錯的,講了很多重點,感謝上面的大大 11/15 13:36
→ kh555069: 雖然還是沒得到明確答案,不過樓歪得很好XD感謝大大們 11/16 08:54
→ kh555069: 的分享 11/16 08:54
噓 liang1230: 笑死 某B不懂裝懂 把一堆cnn的缺點講成優點 你知道新 11/16 21:40
→ liang1230: 的架構capsule為何出來嗎 呵呵 11/16 21:40
→ Kazimir: 如果不切 輸出層我猜有兩種 一個是把label編碼以後回歸 11/19 02:00
→ Kazimir: 這樣子是6個輸出 或者是onehot 這樣是6*26*11(0-9 + *) 11/19 02:02
→ Kazimir: 切割也沒什麼錯 這樣的話一個nn就可以任意複用 11/19 02:03
→ Kazimir: 腦袋不清楚 6*37(a-z 0-9 *)才對 11/19 02:21
→ Kazimir: 當然我會傾向CNN-RNN這種架構 感覺比較有道理 11/19 02:23
推 aszx4510: 推樓上,理論上CNN-RNN是通解,但我好奇這種架構是不是 11/20 13:33
→ aszx4510: 需要更多training data呢XD 11/20 13:33
推 Kazimir: 如果直接一起訓練應該要吧? 11/24 21:45
推 f496328mm: 切割有缺點,切的不好會影響結果,error會累加上去 11/28 21:19

python搶票程式關鍵字相關的推薦文章

python搶票程式在Python搶票程式教學搶票機器人 - Toni的討論與評價

自己寫程式來搶到限定商品和演唱會門票!(Python搶票機器人) · 使用語言:Python · 使用工具:Jupyter Notebook, Chromedriver · 使用的Python Package:Selenium.

python搶票程式在#新手python搶票機器人加速交流 - 軟體工程師板 | Dcard的討論與評價

新手python搶票機器人加速交流. 軟體工程師. 2021年2月16日22:10. 我今天搶Friday的PS5沒搶到,總共也才花了五秒,全部都是網頁在load的時間,想請問有沒有 ...

python搶票程式在max32002/tixcraft_bot: Max搶票機器人(maxbot) help ... - GitHub的討論與評價

this script only running in python3. (原始碼只可以在python3 下執行。) 請先確定你的python 執行環境下已安裝selenium 及selenium-stealth 或相關的套件,請參考pip- ...

python搶票程式在ptt上的文章推薦目錄

    python搶票程式在使用模擬器做台鐵訂票爬蟲 - iT 邦幫忙的討論與評價

    實作程式碼. solveCaptcha function 和reportCaptcha function. 因為我這次還是一樣會用到DBC,所以我們將昨天用到的DBC solve 和report ...

    python搶票程式在Python制作【大麥網】自動搶票程式 - 有解無憂的討論與評價

    但是因為票數有限,還有黃牛們不能丟了飯碗,所以導致了,很多人都搶不到票. 那么,今天帶大家用Python來制作一個自動搶票的腳本小程式 ...

    python搶票程式在[爬蟲實戰] 如何破解高鐵驗證碼(1) | python高鐵票 - 訂房優惠報報的討論與評價

    [ Python ] 高鐵購票 程式 修正(20190501) | python 高鐵票. 由於高鐵購票網頁增加了 ... 中部省份的高鐵票均為秒光狀態,而每年這時候也是各種 搶票 軟體最激動的時候。

    python搶票程式在[爬蟲實戰] 如何使用Selenium 抓取驗證碼? | python高鐵訂票的討論與評價

    [ Python ] 高鐵購票 程式 修正(20190501) | python 高鐵訂票. 由於高鐵購票網頁增加了 ... 朋友圈瘋傳加速包 搶票 ,還不如 Python 自動 搶票 來的靠譜! | python 高鐵訂票.

    python搶票程式在拓元售票系統使用Max自動搶票機器人(20181123) - 旅遊台灣的討論與評價

    python +selenium實現自動 搶票 | python搶票 教學. 摘要: 使用說明 程式 執行開始,需要輸入出發地,目的地,出發時間,乘客資訊,車次;乘客資訊和車次可以輸入多個剛剛 ...

    python搶票程式在搶票程式python - 台灣公司行號的討論與評價

    標籤: 搶票程式python. [Python] 高鐵訂票高手程式修正- 藏經閣. 以<getimageByScreenShot.py> 為例 ...

    python搶票程式在【演唱會搶票!】 MaxBot 非官方使用教學 - YouTube的討論與評價

    朋友最近要搶五月天的票了,之前學過 python 的selenium,覺得可以自己寫出 搶票程式 ,但發現原來已經有大大做好了,於是我做了一個簡單的影片介紹。

    python搶票程式的PTT 評價、討論一次看



    更多推薦結果