August 30, 2017

網路爬蟲(1):Python與爬蟲套件工具安裝

在開始寫Python爬網路之前,依序安裝下列三種套件,安裝說明如下:



1. Python

1.1 首先下載 python:請上官網下載 python

1.2 安裝 python-X.X.X.exe (下面是以 Python 3.6.2 為例,可能會有更新版本)

一開始安裝方式的設定畫面,請務必在最下方的Add Python 3.6 to PATH 打勾

若不想要用預設的安裝路徑的話,可以選擇 Customize installation

我個人覺得預設路徑好長很醜,所以選customaize

(以下是win10畫面)


下一個畫面,就Next下去


選擇 Customize installation的會進入設定安裝路徑的畫面

例如直接裝在 C:\Python36,覺得乾淨俐落XD

然後就 Install,一路讓它裝到完,一直到看到Finish就完成了!


1.3 環境變數設定

完成python安裝後我們要來設定環境變數

理論上剛剛安裝時有選擇Add Python 3.6 to PATH ,應該已經完成設定了,只是再做確認

首先,打開windows控制台的系統環境變數窗格(可以用搜尋輸入「系統環境變數」)

點選「進階」標籤底下的「環境變數」


點選「使用者變數」中的「PATH」列,再點選「編輯」


此時,會列出所有的PATH路徑

檢查一下是否有剛剛安裝的python路徑

要包含兩個

一個是python路徑 C:\Python36\

另一個是子程式路徑C:\Python36\Scripts\

如果沒有,就自點選「新增」,自己輸入,手動新增



如果你的python是安裝在預設路徑上

例如 C:\Users\Yi-Pei Liao\AppData\Local\Programs\Python\Python36-32

則PATH應該要有

C:\Users\Yi-Pei Liao\AppData\Local\Programs\Python\Python36-32\
C:\Users\Yi-Pei Liao\AppData\Local\Programs\Python\Python36-32\Scripts\

以此類推

以上,就完成了python的安裝!

2. Requests:網路資源(URLs)擷取套件

由於上個步驟已經安裝並設定完成pip管理套件,安裝Requests變得很簡單。

2.1 確認pip安裝成功

首先打開「命令題是字元」,也可以利用「搜尋」輸入「cmd」


進入命令題是字元畫面如下


輸入 pip 按 enter,如果可以看到下列畫面表示pip安裝成功,若沒有,請再回本文1.3步驟,確認環境變數的路徑設定



2.2 安裝Requests

確認安裝成功後,我們要來安裝requests套件了。

安裝方式是在提示字元裡輸入 pip install requests  後按enter

等程式自動安裝完後,會顯示  Successfully installed request-2.6.0  (版本可能不一樣)

就 完 成 了 。

3. BeautifulSoup4:HTML剖析套件

BeautifulSoup4的安裝方式跟requests一模一樣

同樣在命令題是字元中輸入 pip install BeautifulSoup4  然後按enter

就等它自己跑~~~

直到出現訊息  Successfully installed BeautifulSoup4-4.3.2  (版本可能不一樣)

就 完 成 了 。

4. 寫第一個python爬蟲程式吧

當你完成上述工作後,你已經可以在命令題是字元上寫python了。

只要輸入 python 按 enter,出現 >>> 的符號,就可以開始寫python程式語言了。


那我們來寫一個很簡單的網路爬蟲程式吧

去把成大都市計劃學系首頁中的最新消息內容抓下來



程式語言如下:

首先,我們要寫一行code引入requests工具,才能用URL方式連結要網站伺服器送出需求

>>> import requests

在寫一行code引入BeautifulSoup工具,等下才能剖析HTML文件

>>> from bs4 import BeautifulSoup

現在我要向成大都計的網站伺服器(URL:http://www.up.ncku.edu.tw)丟出request

>>> res = requests.get("http://www.up.ncku.edu.tw")

網站伺服器回傳的東西偷存在res裡,是HTML格式,但為了接下來可以用HTML工具剖析,所以我再用BeautifulSoup轉存到soup裡

>>> soup = BeautifulSoup(res.text,"lxml")

好了,現在我們把soup裡關於「最新消息」的那一欄資料印出來吧!

>>> print(soup.select("#s5_component_wrap_inner"))

我以後再解釋 #s5_component_wrap_inner是甚麼鬼東西~

按下enter後,會跑出了一大堆中英文夾雜的東西,看起來像亂碼,但仔細看還是會看到好幾條最新消息的標題,表示我們成功把資料撈下來了。


這些亂七八糟的文字就是HTML格式,如果你到原本網頁,在網頁上按右鍵,選擇「檢視網頁原始碼」會看到的東西就跟這個長一樣。

以後我們再講HTML是甚麼,以及怎好好剖析把亂碼刮到剩下我要的資訊。


Parser Library錯誤資訊

如果依照上述步驟完成,是寫程式並執行後,出現類似錯誤訊息:

FeatureNotFound: Couldn't find a tree builder with the features you requests: lxml.  Do you need to install a parser library?

(下圖為用jupyter寫python的畫面,若您用命令提示字元應是看到黑底白字)


表示你的python目前沒有工具辨識 lxml 格式,即便你已經安裝beautifulSoup

沒關係,很簡單,只要再回到cmd輸入安裝命令

pip install lxml 

等安裝完,問題應該可以解決~

No comments:

Post a Comment