機房里相當冷清,看不到一個人。
畢竟這會兒在放暑假,考研大軍們一般也用不上電腦。
走過去打開空調,陸舟隨便找了臺機子坐下,輸入自己的學號和密碼,熟練地登錄電腦。
之所以選擇學校的機房,主要是因為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,才刷出了幾張回去的票,陸舟就深切地感受到,廣大勞苦群眾過年回家的不容易。
通過不斷刷新官網數據,有一定玄學概率會刷出一些票,其中有的是其他用戶的退票,有的陸舟也不確定是怎么出來的,不過這個功能倒是可以考慮一下。
比如設定一個時間段和幾個車次,由服務器代勞幫用戶自動刷新數據,在余票出現的一瞬間提交訂單。就目前他看到的幾款搶票軟件中,好像還沒這個功能。
而且在算法上,實現起來好像也不是很難。
想到這里,陸舟抬頭看了下掛鐘。
現在是下午1點!
保存了word文檔,陸舟干勁十足地擼起袖子,雙手放在了鍵盤上。
“開始干活!”