成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微軟MVP搶到一張硬座,什么水平?

開發 后端
由于目前還未找到直接將Skype的流轉為SpeechSDK可以識別的流,因此該方案目前暫無進展。網站和電話其實這兩個方向我都了相應的探索但基本都屬于無功而返,反思這次做為一個程序員的的搶票行動,我覺得有以下幾點是需要考慮的。

  真是很慚愧。看到網上那多哥們如何如何用自己寫的工具、腳本,買到了回家的車票至少還是都是臥鋪的。但是我水平不行,只買到了硬座的(已完成支付,收到了12306的短信通知但未換紙質車票)。既然只買到硬座的而以還有啥好說的呢?更何況這是博客園首頁啊!其實我只想說我其實也做了不少工作,可能算是技術不行、也可能是繞了很多彎路、還有可能就是12306或95105105雖然很爛但其實他們也是在不斷的改進的,今天找到的方法說不定明天效果就不好。

  首先講講做了哪些工作:

  12306.cn

  第一次訪問了該網站之后我就想應該可以寫一個自動化的工具,可以自動幫我去進行查票、訂票。最開始的時候想的前面幾步都是手工實現的,然后通過構造發送最終的訂票數據。來模擬提交。但不是很理想,雖然把本地所有的cookie信息都模擬提交了但還是返回不了正確的訂票信息。

  于是就想寫WinForm之類的工具,遇到了驗證碼。考慮過用人工的方式但還是想著如果能夠破解圖形驗證碼的話效果應該更好。無奈花了一、兩天的時間來搞驗證碼,做一過比如把圖片信息變為0和1分布的矩陣,通過查找相對位置的辦法來識別,但是識別效果并不好,因此放棄。

  最近這兩天在網站方面已經不考慮再寫什么工具了,注冊了三個賬戶,把要買的人員全部加為聯系人,在查票的時候掛上如下簡單的腳本,進行自動刷新而以。

  setInterval(" this.document.getElementById('main').contentWindow.document.getElementById('submitQuery').click();",10000)

  95105105

  雖然電話訂票的渠道知道的時間要比網上稍晚點,但網上看了一些文章好像用電話訂票的成功率要高點似的。剛開始想的也是自動來實現的,但是訂票環節中加了個驗證碼,全流程的自動化暫時是行不通了。但是由于之前接觸過Skype相關的API,因此還是寫了一個簡單的外掛,進行自動化重撥和身份證輸入等功能。寫這個外掛過程中我還特決購買了800多分鐘的skype套餐(還有一半未使用完)。

Skype通話錄音與盡快重撥代碼(需要安裝Skype4COM)

 

  1.   /// <summary> /// 忙重撥  
  2.   /// </summary> /// <param name="phoneNum">電話號碼,例如:01095105105</param>  
  3.   public void ReDial(string phoneNum)  
  4.   {  
  5.   try 
  6.   {  
  7.   objSkpe = new Skype();  
  8.   objSkpe.Attach(7, true);  
  9.   objCall = objSkpe.PlaceCall(phoneNum);  
  10.   //設置聲音文件輸出目錄  
  11.   string outPutFolder = System.Environment.CurrentDirectory + "\audio\" 
  12.   if (!Directory.Exists(outPutFolder))  
  13.   {  
  14.   Directory.CreateDirectory(outPutFolder);  
  15.   }  
  16.   string waveFile = outPutFolder + phoneNum + "_" + DateTime.Now.ToString("yyyyMMdd_hhmmss") + ".wav" 
  17.   //錄音  
  18.   objCall.set_OutputDevice(TCallIoDeviceType.callIoDeviceTypeFile, waveFile);  
  19.   //WriteLog("撥號中...");  
  20.   TimeSpan startTime = new TimeSpan(DateTime.Now.Ticks);  
  21.   //循環直到通話中  
  22.   while (objCall.Status != TCallStatus.clsInProgress)  
  23.   {  
  24.   //判斷撥號超時  
  25.   if (objCall.Status == TCallStatus.clsRouting)  
  26.   {  
  27.   Thread.Sleep(1000);  
  28.   TimeSpan stopTime = new TimeSpan(DateTime.Now.Ticks);  
  29.   TimeSpan val = stopTime.Subtract(startTime).Duration();  
  30.   if (val.TotalSeconds > 30)  
  31.   {  
  32.   objCall.Finish();  
  33.   }  
  34.   continue 
  35.   }  
  36.  //忙或關閉等各種狀態重播  
  37.   if (objCall.Status == TCallStatus.clsBusy  
  38.   || objCall.Status == TCallStatus.clsFailed  
  39.   || objCall.Status == SKYPE4COMLib.TCallStatus.clsFinished  
  40.   || objCall.Status == SKYPE4COMLib.TCallStatus.clsCancelled  
  41.   || objCall.Status == SKYPE4COMLib.TCallStatus.clsEarlyMedia  
  42.   || objCall.Status == SKYPE4COMLib.TCallStatus.clsRinging  
  43.   )  
  44.  {  
  45.   //如果是忙音,則需要先掛斷再重撥  
  46.   if (objCall.Status == SKYPE4COMLib.TCallStatus.clsEarlyMedia || objCall.Status == SKYPE4COMLib.TCallStatus.clsRinging)  
  47.   {  
  48.   objCall.Finish();  
  49.   }  
  50.   //WriteLog("忙重撥...");  
  51.   Thread.Sleep(1000);  
  52.  ReDial(phoneNum);  
  53.   }  
  54.   }  
  55.  // WriteLog("通話中...");  
  56.   }  
  57.   catch (Exception exp)  
  58.   {  
  59.   //WriteLog("Error:" + exp.Message);  
  60.   }  
  61.   } 

 

  雖然流程自動化系統比較難實現,但其實我也在這方面做了一些努力,比如動用了微軟的SpeechSDK來參與我的搶票工作,以下是調用SppechSDK識別聲音到文本的結果展示。

  但是由于目前還未找到直接將Skype的流轉為SpeechSDK可以識別的流,因此該方案目前暫無進展。

  效果:

  12306.cn 本文標題所指的硬座其實寫的工具都沒有派上用場,最后還是通過“人工”的方法來訂到的,可惜提交了不少于50次的臥鋪訂單但還是無法成功訂到。

  95105105 開發了不少功能,但是最實是實用的還是自動重播那一項,該渠道于昨天(1月18日)幫一朋友買到了臨客的臥鋪,也還算是聊以慰籍。本來今天還想給我自己訂的無奈很不給力兩個Skype從7:58開始撥到8:30才撥通不說,好幾次都確認訂票信息了,系統直接給我提示“系統繁忙,訂票請按1”,崩潰了。。。。(不更早一點撥號是因為之前發現7點多撥的號到8點以后還是訂不了最新預售期內的票,網站好像也有這個問題。他是根據登錄時間來定的而不是當前時間,所以早撥也沒用。)

  總結一下:

  網站和電話其實這兩個方向我都了相應的探索但基本都屬于無功而返,反思這次做為一個程序員的的搶票行動,我覺得有以下幾點是需要考慮的:

  1. 開發工作脫離目標

  目標雖然很清晰,但是在實際開發過程中很容易進了死胡同里,特別是感覺如果解決了很有成就感的技術問題。當然還有可能是由于技術水平有限,應該有高手早就解決了我遇到的這些問題了。

  2.少即是多,準備的東西太多,搶票時手忙腳亂的。看看我的工作臺快照

  無論怎樣。我覺得此次搶票行動比起在車站排除買票,還是意思的多的。最后,祝大家都能買到中意的車票平安回家,新年快樂!

原文鏈接:http://www.cnblogs.com/wuhuacong/archive/2011/11/22/2259128.html

【編輯推薦】

 

  1. WPF調用Winform控件具體技巧分享
  2. Winform框架之字典數據管理
  3. 詳解Winform多線程編程基本原理
  4. 詳解WinForm窗體間交互的方法
  5. WPF與WinForm對比談 多線程編程優化是關鍵
責任編輯:彭凡 來源: 博客園
相關推薦

2018-05-18 18:09:44

人工智能

2016-11-10 10:03:02

微軟Power BI組件

2009-07-07 18:08:26

Oracle收購Ubu紅帽對抗微軟

2021-02-07 09:01:10

Java并發編程

2019-09-11 10:12:12

華為

2024-01-30 08:55:24

2015-09-23 10:04:03

開放數據

2015-10-29 15:09:32

信息圖數據

2015-03-10 10:15:27

AppleWatch開發Swift

2012-11-05 14:57:50

MVP

2013-07-04 10:50:33

騰訊移動互聯網大數據

2022-06-29 08:22:05

NFTWeb3元宇宙

2012-07-19 09:25:01

JavaScript

2011-01-04 16:06:26

微軟MVP

2015-09-14 09:07:15

Java多線程

2019-07-16 12:54:37

IoT5G人工智能

2015-07-29 15:55:53

Windows 10桌面

2020-06-15 08:54:46

架構圖 EA業務建模

2020-05-08 09:35:17

攻擊漏洞網絡安全

2013-11-29 10:09:41

物聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区视频 | 成年人免费在线视频 | 久久久免费观看视频 | 99福利视频导航 | 亚洲 中文 欧美 日韩 在线观看 | 91黄色片免费看 | 国产精品美女久久久久aⅴ国产馆 | 日韩精品一 | 欧美多人在线 | 欧美精品综合在线 | 国产精品久久久久久妇女 | 国产精品一区网站 | 中文字幕成人网 | 91网视频| 午夜精品久久久久久久99黑人 | 国产中文字幕网 | 午夜天堂 | 天堂亚洲网 | 最近中文字幕在线视频1 | 在线欧美激情 | 美女一级毛片 | 亚洲成av片人久久久 | 国产欧美在线视频 | 亚洲福利一区 | 欧美高清性xxxxhd | 成人在线视频一区二区三区 | 国产午夜在线 | 成人精品一区二区三区中文字幕 | 国产精品一区在线观看 | 国产精品一区二区欧美黑人喷潮水 | 97人人草 | 日韩精品 | 天天操天天怕 | 国产精品色综合 | 精品久久国产 | 欧美激情在线精品一区二区三区 | 中文字幕av在线播放 | 日韩五月天 | 日韩电影中文字幕 | 欧美日韩在线成人 | 99久久精品一区二区成人 |