爬蟲實戰 - Using Python3 Part1

前陣子受邀回母校上網路爬蟲,最近剛好有空想說把教學的過程都記錄下來,也方便日後做參考。

什麼是爬蟲 ?

爬蟲只是一個蒐集網路資料的技術而已,最開始是用來搜尋網際網路上的網址,以Google搜尋為例,搜尋完關鍵字後所呈現的內容都是Google爬蟲努力的結果

爬蟲的起點始於一張被稱作種子的統一資源位址(URLs)列表,透過分析這些頁面內提供的所有網頁連結以及文章,進而生成網頁快照儲存下來,這便是爬蟲最開始的由來。

隨著時間的演進,爬蟲的功能也不侷限在網頁快照而已,若要用一句話來定義現今形式網路爬蟲的話,我覺得是這樣

使用自動化的方式模擬人類在瀏覽器上操作的所有行為

學了爬蟲有什麼好處 ?

舉個例子來說,知名的影像串流平台:Netflix的推薦影片就是用到這個技術,透過分析各大盜版網站的下載排行榜就可以粗略了解這個地區人們的喜好,這方法還有個好處就是區域性,不同國家的人喜歡的影片種類皆不一樣,但透過爬蟲分析一樣不成問題。

再舉另一個例子,假設我們要建立一個房屋的比價網站,那我們勢必要蒐集各大租屋網的網站資料,但是產品的開發時間是有限的,當你跟對方網站窗口洽談合作事宜時,中間的來來回回少不了也需要好幾個月的時間,但是有了網路爬蟲後,我們再也不擔心對方的合作意願,直接把資料抓下來就對了,省下好幾個月的成本時間,這還不夠迷人嗎?

工具介紹

  • 作業環境: Ubuntu 15.10 64bits
  • python版本: 3.4

使用的套件:

  • requests - 一個優雅且非常簡易使用的http library
  • lxml - 解析 html / xml 並建立成dom 的library
  • jupyter - 基於瀏覽器形式的python ide

介紹完我們的操作環境以及會使用到的套件後,緊接著就來安裝吧

requests

1
$ pip3 install requests

lxml

for centos:

1
2
3
$ yum install libxml2-devel
$ yum install libxslt-devel
$ pip3 install lxml

for ubuntu:

1
$ apt-get install python3-lxml

jupyter

1
$ pip3 install jupyter

上述環境準備好後,就能開始來寫爬蟲了
本教學以斧頭幫關卡為目標