那些年,我爬過的北科(序)——我和爬蟲的緣分

叄公子KCN發表於2018-12-08

不止不覺中,已經大學畢業上了研究生了,其實這一系列教程很早就想開始寫,由於一堆事情加上拖到了現在。(原寫於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爬蟲

統計一下中國女性的胸圍分佈。

nladuo.github.io/bra/

還書提醒

提醒自己別忘了還書。

那些年,我爬過的北科(序)——我和爬蟲的緣分

鏈家爬蟲

學習scrapy時候寫的。

那些年,我爬過的北科(序)——我和爬蟲的緣分

種子站

拿DHT爬蟲+Sphinx做的種子搜尋引擎,後來資料太多了,網站已經關了,只有圖了。

那些年,我爬過的北科(序)——我和爬蟲的緣分

教程大綱

談完了我和爬蟲君的緣分後,便要開始進入正題了。在之後的幾篇文章中,我將從基礎的定向爬蟲開始講起,並結合多執行緒提高抓取速度,通過資料庫來快取資料。之後會聊一聊反反爬蟲的技術,解決一些限制性的問題。因為爬蟲最原始的功能其實是構建搜尋引擎,最後,將會使用ElasticSearch構建一個搜尋的案例。

1、爬蟲介紹

  • ①爬蟲是什麼?
  • ②環境搭建與入門

2、爬蟲基礎

  • ①爬取網頁新聞列表
  • ②Session登陸
  • ③多程式爬取

3、資料儲存

  • mongodb的使用

4、反反爬蟲

  • ①JS渲染:selenium+phantomjs的使用
  • ②ip防禁:使用代理IP
  • ③簡單驗證碼破解:使用KNN

5、案例——北科貼吧帖子搜尋

  • ①爬蟲編寫
  • ②使用ElasticSearch搜尋帖子

專案地址

相關程式碼都放在了:github.com/nladuo/USTB…

相關文章