天天看點

關于爬蟲,首篇補充基礎知識爬蟲架構:爬蟲原理廢話不多說,開始分析Gecco架構,并簡單改進先跑起來

補充基礎知識

爬蟲,毋庸置疑就是爬去網際網路的網頁,理論上,隻要是網際網路中存在的web頁面,都可以爬取。用來做資料采集非常合适,尤其是現在大資料領域,爬蟲必不可少。

爬蟲種類有很多,了解概念可以參考

百度百科

這裡采用Java語言做爬蟲,沒有什麼特别的原因,第一我用Java多,第二Java效率也挺好,第三我們的很多項目都Java的,做互相內建非常友善。當然pyhton的很多爬蟲也很優秀。

爬蟲架構:

java的爬蟲也很多,我選了一個簡單易用,友善擴充,完全開源的爬蟲為基礎來修改 。

壁虎: https://github.com/xtuhcy/gecco

爬蟲原理

爬蟲無非就是模拟浏覽器和一些人們操作浏覽器的動作,自動的通路網站,下載下傳網頁,然後抽取有用的網頁内容,當采集的資料量達到一定數量級時,便會産生非常壯觀或有價值的效果。麻煩的地方就在于很多網站有登陸、驗證碼、ajax、js等等技術防止你進行資料爬取。

使用爬蟲基礎要求:

1.了解網絡基礎,了解從浏覽器輸入網址到看到資料經曆了什麼,整個過程是什麼。

2.可以分析web網頁,可以抓包。開發過網頁前端的具有css基礎的即可。

3.Java語言

4.常用的一些Java架構,Spring,HttpClient,FastJson,HtmlUnit等等

5.一般一個2-3年經驗的開發者,可以幾個小時就能上手一個爬蟲,熟練幾天便可使用的遊刃有餘。

廢話不多說,開始

分析Gecco架構,并簡單改進

從今天開始,準備做一個爬蟲,最簡單的方式,找一個合适的開源的項目為基礎,進行修改。我選了Gecco。

代碼:

文檔:

http://www.geccocrawler.com/

先跑起來

maven引入

<!-- https://mvnrepository.com/artifact/com.geccocrawler/gecco -->
<dependency>
    <groupId>com.geccocrawler</groupId>
    <artifactId>gecco</artifactId>
    <version>1.3.0</version>
</dependency>