如今有不少朋友進行網頁數據獲取的項目,網抓方面的程序設計也比較受關注,可是不少人對網抓的思路不太清晰,以致於不能很快進入狀態。
我想經過這個帖子,把我本身的經歷和感覺用最少的話語分享給你們。
(一)網抓的目的和意義
一句話歸納:網抓就是從互聯網上把本身須要的東西獲取到,而後本身再利用這些東西。
(二)流程
網抓的基本路線爲:正則表達式
-
- 分析目標網站的url構造特色
-
- 分析目標網站的網頁內容構成
-
- 嘗試用程序語言獲取源代碼
-
- 從源代碼中找到目標數據
-
- 保存數據
以上各個步驟,用到的知識,看下面的圖片:
上面這個流程圖,就是網抓的重點和難點了,下面簡單介紹一下各組成部分。(三)程序語言VBA和VB6沒什麼兩樣,只不過多了些Office的對象模型,也就是說VBA能搞的東西,VB6基本都能搞。引用XMLHTTP這個外部對象,能夠從互聯網獲取到東西,或者能夠向互聯網提交數據。此外,Python在網抓方面簡直太方便了,一大堆現成的庫等你用。尤爲是Selenium技術,能夠模擬真實的瀏覽器,實現網頁操做自動化。(四)網頁解析衆所周知,任何網頁的源代碼都是幾百萬行的HTML標籤語言。從這裏面找到你想要的數據,有不少技術能夠用,若是是VBA/VB6,可使用正則表達式或者把網頁源代碼賦給一個HTMLDocument對象,均可以方便地拿到目標數據。若是是Python,也能夠用正則表達式,還能夠用BeautifulSoup(bs4)代替HTMLDocument。(五)數據存取編程過程當中,必定涉及數據與文件的讀寫操做,通常可使用文本文件、csv文件、excel、數據庫等做爲存儲介質。經過以上的經驗,你是否知道下一步該學點什麼了呢?