第47章 开发個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文档,陆舟干劲十足地撸起袖子,双手放在了键盘上。 “开始干活!”