不止不覺中,已經大學畢業上了研究生了,其實這一系列教程很早就想開始寫,由於一堆事情加上拖到了現在。(原寫於2017年9月18號)
緣起
大概是大二下學期剛開學的時候,我開始接觸了Web開發,那個時候跟著網上看視訊,學習了HTTP Get與Post請求,瞭解了網站是怎麼個工作的。我當時突然聯想到了平時都在用的課程格子,想著十分有趣,想著能不能用這種技術去做這樣一款查課表的東西。
於是乎,網上尋找資料,瞭解了登陸的原理,以及如何獲取到Cookie。當時,我最熟悉的語言是C#,從網上找了個解析HTML的dll,用著自帶的HttpWebRequest就開始搞了。那時還不會用chrome,用的HttpWatch,也遇到了很多坑,不過也通過自己的努力把學校的課表搞下來了。
不過,我發現單純搞個課表也並沒有什麼卵用,於是我想到了當時正值學校搶課期間,我就做個搶課軟體,那還不弔炸天。
於是我用那個只能在IE上跑起來的HttpWatch抓到了JSON的資料,當時也不知道JSON是什麼,只知道XML,還網上問了一下這是什麼格式的資料,後來就知道這是傳說中的JSON,又去惡補了一遍JSON的知識。然後又找了個C#的解析JSON的dll,在我的電腦上把搶課的軟體跑起來了,下面就是當時的軟體截圖。
就是通過這個自己編寫的這個爬蟲軟體,我選上了當時的“英文記錄片視聽”這門課,不過後來聽說這門課有點坑,我又給退了,o(╯□╰)o。
我都做過哪些?
自從那以後,我開始對爬蟲產生了濃厚的興趣,沒事兒就爬點東西玩兒,下面是我搞過的幾個和爬蟲相關的小應用。
USTB選課系統
練習客戶端開發,把我校的選課系統移植到了Android、iOS、Mac、Ubuntu、Windows客戶端上,見github.com/nladuo/ustb…。
教務資訊服務號
查詢教務系統的成績、學分、課表等,用來練習微信開發的。
淘寶Bra爬蟲
統計一下中國女性的胸圍分佈。
還書提醒
提醒自己別忘了還書。
鏈家爬蟲
學習scrapy時候寫的。
種子站
拿DHT爬蟲+Sphinx做的種子搜尋引擎,後來資料太多了,網站已經關了,只有圖了。
教程大綱
談完了我和爬蟲君的緣分後,便要開始進入正題了。在之後的幾篇文章中,我將從基礎的定向爬蟲開始講起,並結合多執行緒提高抓取速度,通過資料庫來快取資料。之後會聊一聊反反爬蟲的技術,解決一些限制性的問題。因為爬蟲最原始的功能其實是構建搜尋引擎,最後,將會使用ElasticSearch構建一個搜尋的案例。
1、爬蟲介紹
- ①爬蟲是什麼?
- ②環境搭建與入門
2、爬蟲基礎
- ①爬取網頁新聞列表
- ②Session登陸
- ③多程式爬取
3、資料儲存
- mongodb的使用
4、反反爬蟲
- ①JS渲染:selenium+phantomjs的使用
- ②ip防禁:使用代理IP
- ③簡單驗證碼破解:使用KNN
5、案例——北科貼吧帖子搜尋
- ①爬蟲編寫
- ②使用ElasticSearch搜尋帖子
專案地址
相關程式碼都放在了:github.com/nladuo/USTB…