第四十七章 開發個APP練手

機房里相當冷清,看不到一個人.
畢竟這會兒在放暑假,考研大軍們一般也用不上電腦.
走過去打開空調,陸舟隨便找了台機子坐下,輸入自己的學號和密碼,熟練地登錄電腦.
之所以選擇學校的機房,主要是因為python語言編寫的程序主要都是在Linux系統下運行,直接在Linux環境下學習python語言可以說是一舉兩得.
而陸舟自己的二手筆記本實在太垃圾了,論文轉個pdf格式都得假死一會兒,玩個擼啊擼別人都開始對線了他才站上泉水,裝雙系統或者虛擬機這些騷操作是不用想的.
"雖然書上都講得很清楚了,沒想到這玩意兒用起來這麼麻煩……果然紙上的東西和實際操作起來完全是兩回事,想學到東西還是得靠實踐啊."
第一次使用Linux系統的陸舟只感覺兩眼抓瞎,照著從圖書館借來的說明教程看了好一會兒,才算是摸清楚了門道.
不得不說,別人windows系統占據這麼大的市場份額還是有道理的,全圖型的操作系統即便是完全沒碰過電腦的小白,也能很輕松的上手.
然而Linux系統卻不一樣,基本上是命令行操作模式,通過鍵盤就能完成一切操作.也幸虧學校裝的是帶有桌面環境的發行版,要不陸舟還真不知道鼠標這玩意兒有啥用.
當然了,Linux的優點也很明顯,超強的可定制性和安全性使得它比windows系統更適合服務器等領域.而且一旦熟悉了命令行操作,效率將比windows系統高個數倍不止.所以很多企業在招聘服務器前後端程序員的時候都會問一句,會不會用Linux系統.
熟悉了Linux系統的基本操作,陸舟打開了python軟件,翻開了書本,坐在電腦面前發呆.
"說到python的運用之一就是編寫網絡爬蟲,想要檢驗學習成果的話,從這個開始是最好的……可是做個什麼爬蟲呢?"
陸舟不禁陷入了沉思.
爬圍脖上的博文?
爬貼吧的帖子?
好像挺無聊的.
關鍵是爬下來的數據拿在手上沒用,多了連放的地方都沒有.
忽然,他心中一動,不知怎麼的就回憶起了每次回家痛苦的搶票經曆.倒不是因為他電腦卡,而是因為鐵道部官網的ui設計實在是太反人類了.
"用爬蟲技術爬取12306網站的各車站,車次,余票數據信息……這個好像可以搞啊."
一想到這里,陸舟也不再磨蹭了,立刻開始干活.
畢竟作為python語言的一種典型運用范例,爬蟲程序的模板在書中都是有提到的,而且針對不同種情況,書中還針對算法進行了不同程度的改良.
當然了,12306畢竟不是一般BBS論壇,把這個作為初學者的練習目標,還是有不小難度的.
不過也僅僅是不小而已,對于已經吃透了整本書的陸學霸來說,問題卻是不大.爬蟲本身並沒有太高的技術難度,不到30行代碼就搞定了整個程序,完美運行無bug.
然後緊接著就是抓取了.
將網站的url複制在代碼後面,陸舟選擇運行,並且將數據生成表格,導入到預先建好的文件夾中.
緊接著機箱的風扇開始嗡嗡作響,電腦變的卡頓起來,一行行編碼從黑色的對話框中閃過,被迅速整理進表格中.
看著不斷被填充的文件夾,靠在椅子上的陸舟心中感慨.
"python語言真尼瑪方便,難怪那麼多大牛推薦這玩意兒."
看著一行行數據閃過的信息,陸舟還真有種過把黑客癮的錯覺.
不過當然了,也僅僅是錯覺而已,連感覺都談不上,畢竟這玩意兒和黑客技術完全八竿子打不著邊.從服務器上爬取公開信息是不犯法的,頂多有擠占別人服務器資源的嫌疑,會被各大站長痛恨不已.
所以很多"小氣"的網站會設置有反爬蟲程序,技術高點的要麼讓你什麼東西都爬不到,要麼爬下來的都是亂碼,技術含量低的也可以通過訪問次數監控,直接鎖了你的ip.
不過12306網站顯然沒那麼小氣,想想一個連用戶體驗都不在意的壟斷巨頭,會在意那點服務器資源?只要你們別把老子的服務器折騰撲街了,誰管你!

看著文件夾里不斷堆積的車次數據,陸舟眼睛轉了轉,尋思著要不要用它來干點啥?
"做個訂車票網站?好像有些脫了褲子放屁……"
忽然,陸舟心中一動.
要不……
做個網上訂票的app?
這個臨時起意的想法一冒出來,便不可控制地在他心中生根發芽.
雖然網絡上有不少第三方訂票app,但官方的訂票app還真沒有.如果他能做出來一個與眾不同的,賣給那些感興趣的運營商,說不定還能賺點生活費.
一涉及到錢的問題,陸舟頓時就上心了,心中開始不斷盤算了起來.
技術上,獨立完成一個app從前端到後端的開發,難度很高,遠非寫一個簡單的爬蟲程序能相提並論,不過卻並非無法完成.更何況,解決不了的算法還能問系統嘛,消耗積分查詢資料本身也是一個學習的過程.
等他完成了獎勵任務,解鎖了人工智能LV0這一分支科技,這些寶貴的經驗肯定能派上用場.
只不過購買並維持一台服務器恐怕得花不少錢,運營服務器的電費和各種維護費用,恐怕也是一筆不小的開支……
而他的卡里只有不到一萬塊,恐怕燒出個小火苗都困難.
咬了咬牙,陸舟還是決定克服這些難題.
連50萬的年薪都放棄了,還有什麼做不到的?
就算撲街了,權當是做課設練手也無妨.
于是,陸舟關閉了程序,並沒有急著開始改代碼,而是打開word的文檔,就像編寫論文的大綱一樣,開始設計app的開發流程大綱.
"火車票查詢必須爬取實時數據,對服務器的性能要求很高,代碼必須盡可能簡潔!"
"界面可以簡單,但信息一定得准確,全面,這一點可以參考主流第三方訂票app,不過一定不能完全相似,必須有創新點……"
寫到這里,陸舟的食指輕輕摩擦著鍵盤,思考了很久,才繼續開始敲打鍵盤.
"首先是自動搶票.這個應該算不上創新,好久以前獵豹,360幾個瀏覽器已經有了這個功能."
"不過掛機自動刷票……好像還沒見過."想著去年寒假的時候,訂票訂晚了,寢室里的幾個牲口坐在電腦前按了快半個小時的f5,才刷出了幾張回去的票,陸舟就深切地感受到,廣大勞苦群眾過年回家的不容易.
通過不斷刷新官網數據,有一定玄學概率會刷出一些票,其中有的是其他用戶的退票,有的陸舟也不確定是怎麼出來的,不過這個功能倒是可以考慮一下.
比如設定一個時間段和幾個車次,由服務器代勞幫用戶自動刷新數據,在余票出現的一瞬間提交訂單.就目前他看到的幾款搶票軟件中,好像還沒這個功能.
而且在算法上,實現起來好像也不是很難.
想到這里,陸舟抬頭看了下掛鍾.
現在是下午3點!
保存了word文檔,陸舟干勁十足地擼起袖子,雙手放在了鍵盤上.
"開始干活!"