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

不止不覺中,已經大學畢業上了研究生了,其實這一系列教程很早就想開始寫,因爲一堆事情加上拖到了如今。(原寫於2017年9月18號)git

緣起

大概是大二下學期剛開學的時候,我開始接觸了Web開發,那個時候跟着網上看視頻,學習了HTTP Get與Post請求,瞭解了網站是怎麼個工做的。我當時忽然聯想到了平時都在用的課程格子,想着十分有趣,想着能不能用這種技術去作這樣一款查課表的東西。github

因而乎,網上尋找資料,瞭解了登錄的原理,以及如何獲取到Cookie。當時,我最熟悉的語言是C#,從網上找了個解析HTML的dll,用着自帶的HttpWebRequest就開始搞了。那時還不會用chrome,用的HttpWatch,也遇到了不少坑,不過也經過本身的努力把學校的課表搞下來了。mongodb

不過,我發現單純搞個課表也並無什麼卵用,因而我想到了當時正值學校搶課期間,我就作個搶課軟件,那還不弔炸天。chrome

因而我用那個只能在IE上跑起來的HttpWatch抓到了JSON的數據,當時也不知道JSON是什麼,只知道XML,還網上問了一下這是什麼格式的數據,後來就知道這是傳說中的JSON,又去惡補了一遍JSON的知識。而後又找了個C#的解析JSON的dll,在個人電腦上把搶課的軟件跑起來了,下面就是當時的軟件截圖。數據庫

就是經過這個本身編寫的這個爬蟲軟件,我選上了當時的「英文記錄片視聽」這門課,不事後來據說這門課有點坑,我又給退了,o(╯□╰)o。緩存

我都作過哪些?

自從那之後,我開始對爬蟲產生了濃厚的興趣,沒事兒就爬點東西玩兒,下面是我搞過的幾個和爬蟲相關的小應用。微信

USTB選課系統

練習客戶端開發,把我校的選課系統移植到了Android、iOS、Mac、Ubuntu、Windows客戶端上,見github.com/nladuo/ustb…微信開發

教務信息服務號

查詢教務系統的成績、學分、課表等,用來練習微信開發的。多線程

淘寶Bra爬蟲

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

nladuo.github.io/bra/

還書提醒

提醒本身別忘了還書。

鏈家爬蟲

學習scrapy時候寫的。

種子站

拿DHT爬蟲+Sphinx作的種子搜索引擎,後來數據太多了,網站已經關了,只有圖了。

教程大綱

談完了我和爬蟲君的緣分後,便要開始進入正題了。在以後的幾篇文章中,我將從基礎的定向爬蟲開始講起,並結合多線程提升抓取速度,經過數據庫來緩存數據。以後會聊一聊反反爬蟲的技術,解決一些限制性的問題。由於爬蟲最原始的功能實際上是構建搜索引擎,最後,將會使用ElasticSearch構建一個搜索的案例。

一、爬蟲介紹

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

二、爬蟲基礎

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

三、數據存儲

  • mongodb的使用

四、反反爬蟲

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

五、案例——北科貼吧帖子搜索

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

項目地址

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

相關文章
相關標籤/搜索