【<私活案例3>】 獲取某市網站普通高中錄取分數小工具


私活案例3:獲取某市網站普通高中錄取分數小工具
0 前言

年齡越來越大,記性越來越差,只想把自己一些零零散散的私活經歷記錄下來,日后回頭看,還能想起這些小項目、小技術點,還能想起那些和客戶、朋友打交道的各種過往。

個人喜歡實用,不喜歡做研究,此私活案例系列,都是小工具、小應用,無高深技術和復雜流程。一直相信,能適用到實際項目中的技術就是好技術。

不談賺錢,技術卻是可以學到多而雜,但不精通。

不談社會,現實卻是可以看到真而實,但不學壞。

1 背景

威客是在幾年前新生的名詞,所以威客網在國內也是很火的。曾幾何時,我也浪跡於國內的各大威客網過,當過一段時間的威客。當時,認識了不少同行,也認識了不少客戶,做過一些小項目,賺過一些小錢。此小工具是在國內現在應該算最大的威客網接過的一個私活案例。

2 需求

一高中男教師發布的一個任務。大概要求描述如下:他要從網站http://www.cczsb.com/zklq_2010.asp查詢大概200多個學生的高中錄取信息(主要有3種信息:准考證號、姓名、錄取分數),他現在有200多個學生的准考證號信息,但是每次手動去網站查詢,再復制出來,很慢且很耗時耗力。他想做一個小工具,根據他提供的准考證信息,能自動去獲取出這些信息,並保存成TXT文本。

手動查詢過程如下所示:

1)打開網頁,輸入要查詢的准考證號:

2)點擊:提交查詢內容 按鈕,查詢出信息:

3)手動復制查詢出來的信息到TXT文本中:

 

 

3 進展

接下這個活后,第一反映就是webBrowser控件,於是果斷開始,VS2005,C#開工(當時也是剛學C#,正好趁此機會練手),由於以前做過VC下面的webBrowser開發,還算熟練,很快就寫完了。

4 后事

當時,有個小插曲,就是自己很快就寫完了,但是拿了人家錢,又不能立馬告訴他寫完了,不然人家會以為這么簡單的東西還要那么多錢,於是,就拖了3天才交付(現在想想,當時真是不厚道呀,但是又想想苦B的程序員怎么辦,有時還是要有點小心眼的)。當時交付完小工具,測試OK的時候,老師那個開心呀,歷歷在目。

5 思考

此小工具,說實話真的沒有什么技術含量,但是對於一竅不通的非專業人士來說,卻是感覺很高深莫測,有時程序員們,一定要善於利用這個優勢去創造最大價值。

6 案例

效果圖:

PS:源碼真的很簡單,也不好意思上傳了,貼點關鍵代碼吧,想要源碼的留個郵箱,我發他(不要罵就行,說實話,我現在看了當時寫的代碼都想罵人)。

View Code
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            this.button1.Enabled = true;
            this.textBox1.Enabled = true;
            this.textBox2.Enabled = true;
            if(!bFlag)
                this.lbMsg.Text = "";

            //this.webBrowser1.Document.Window.ScrollTo(500,280);
            if (iFlag)
            {
                string sHtml = "";
                sHtml = this.webBrowser1.Document.Body.InnerHtml;
                sHtml = sHtml.Replace(" ", "");
                sHtml = sHtml.Replace("\t", "");
                sHtml = sHtml.Replace("\r\n", "");

                //得到准考證號
                string sNumberTagBegin = "<FONTsize=4face=宋體>准考證號</FONT></TD><TD><FONTsize=4face=宋體>  ";
                int iNumber = sHtml.IndexOf(sNumberTagBegin);
                string sNumberTemp = "";
                sNumberTemp = sHtml.Substring(iNumber + sNumberTagBegin.Length, 50);
                string sNumberTagEnd = "</FONT></TD></TR><TR>";
                int jNumber = 0;
                jNumber = sNumberTemp.IndexOf(sNumberTagEnd);
                string sNumber = "";
                sNumber = sNumberTemp.Substring(0, jNumber);


                //得到姓名
                //姓名前部分標志
                string sNameTagBegin = "<FONTsize=4face=宋體>姓  名</FONT></TD><TD><FONTsize=4face=宋體>  ";
                int iName = sHtml.IndexOf(sNameTagBegin);//姓名前部分標志開始位置
                string sNameTemp = "";
                sNameTemp = sHtml.Substring(iName + sNameTagBegin.Length, 50);//姓名前部分標志結束位置后50位字符
                string sNameTagEnd = "</FONT></TD></TR><TR>";//姓名后部分標志
                int jName = 0;
                jName = sNameTemp.IndexOf(sNameTagEnd);//姓名后部分標志開始位置
                string sName = "";
                sName = sNameTemp.Substring(0, jName);//姓名

                //得到錄取分數
                //分數前部分標志
                string sCountTagBegin = "<FONTsize=4face=宋體>錄取分數</FONT></TD><TD><FONTsize=4face=宋體>  ";
                int iCount = sHtml.IndexOf(sCountTagBegin);
                string sCountTemp = "";
                sCountTemp = sHtml.Substring(iCount + sCountTagBegin.Length, 50);
                string sCountTagEnd = "</FONT></TD></TR><TR>";
                int jCount = 0;
                jCount = sCountTemp.IndexOf(sCountTagEnd);
                string sCount = "";
                sCount = sCountTemp.Substring(0, jCount);

                string sResult = "";
                sResult = "准考證號:" + sNumber + "\t" + "姓名:" + sName + "\t" + "錄取分數:" + sCount;

                iFlag = false;

                loading = false;

               // MessageBox.Show(sResult);

                string sPath = System.IO.Directory.GetCurrentDirectory() + "/kskh.txt";

                sResult = sResult + "\r\n";

                this.lbMsg.Text = "程序正在查詢,請稍等......";
                this.button1.Enabled = false;
                this.textBox1.Enabled = false;
                this.textBox2.Enabled = false;

                MakeFile(sPath, sResult);

                iTotal--;

                if (iTotal == 0)
                {

                    this.lbMsg.Text = "查詢成功!!!";
                    this.button1.Enabled = true;
                    this.textBox1.Enabled = true;
                    this.textBox2.Enabled = true;
                    MessageBox.Show("查詢成功!!!");
                }
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM