• 沒有找到結果。

什麼是網頁爬蟲

在文檔中 網路糾察隊 (頁 11-0)

第二章 文獻探討

第三節 什麼是網頁爬蟲

4

重複的 、自動的一再拜訪,這樣可以為你的人生省下許多寶 貴的時光。

圖 1、網頁瀏覽器的運作方式

圖 2、網頁爬蟲的運作方式

5 了這兩個分類:網頁爬蟲(web crawler)和網頁抓取器(web scraper)。以下詳細說明它們的區別。

第五節 網

爬蟲 web crawler

Web crawler 又稱為 spider , spiderbot ,或直接簡 稱 crawler。一般是搜尋引擎進行網路索引時(web indexing) 使用的技術。crawler 會造成網站伺服器的負擔,或侵犯一些 隱私資訊,因此網頁開發人員會在網站中添加 robots.txt 這 個檔案或添加,用來告知 crawler 這個網站中哪些東西可以 取得或不可取得。

6

除了連續獲得連結,連出去之外(如同 crawler),還必 須剖析(parse)各分頁的原始碼,將含有你需要的資料片段擷 取下來。它的應用可以是任何規模,通常是針對特定幾個網 站。

一般中文稱呼的網路爬蟲,事實上指的是這一類(web scraper),而非 web crawler。

1

2

4. 剖析網頁原始碼

是否能將 html 原始碼中,含有你所要的資訊的片段,

抓取下來?

5. 重複爬取

當可以成功獲得一個分頁的特定資訊後,就可開始利用 迴圈大規模的重複拜訪撈資料。這個過程中很容易會遇到例 外狀況將你的爬蟲程式阻隔。

6. 打包資料,輸出

上述步驟成功之後,現在可以將努力獲取來的資料拿去 做你要做的事,恭喜你完成了一次精彩的網頁爬蟲!

第二節 網路爬蟲的組成

網路爬蟲由控制節點、爬蟲節點、資源庫構成。

3

網路爬蟲中可以有多個「控制節點」,每個控制節點下 可以有多個「爬蟲節點」,控制節點之間可以互相通訊,同 時,控制節點和其下的各爬蟲節點之間也可以進行互相通訊,

屬於同一個控制節點下的各爬蟲節點間,亦可以互相通訊。

控制節點也叫作爬蟲的中央控制器,主要負責根據 URL 地址分配執行緒,並呼叫爬蟲節點進行具體的爬行。

爬蟲節點會按照相關的演算法,對網頁進行具體的爬行,

主要包括下載網頁以及對網頁的文字進行處理,爬行後,會 將對應的爬行結果儲存到對應的資源庫中。

1

第四章 賽事數據爬取與應用

第一節 NBA 賽事介紹

NBA 正式賽季於每年 10 月中開始,分為例行賽、季後 賽兩大部分。例行賽為循環賽制,每支球隊都要完成 82 場 比賽;例行賽到次年的 4 月結束,每個聯盟的前八名將有資 格進入接下來進行的季後賽。季後賽採用七戰四勝賽制,共 分四輪;季後賽的最後一輪也稱為總決賽,由兩個聯盟的冠 軍爭奪 NBA 的最高榮譽──總冠軍。整個 NBA 賽季當中,例 行賽完結之後聯盟冠軍及分區冠軍不設獎盃,只給予得獎球 隊錦旗一個,但聯盟冠軍及總冠軍均設有獎盃加錦旗。

2

第二節 NBA 數據網站資料格式 NBA 籃球賽事資訊包括以下兩種表單:

NBA shooting 表單

NBA general 表單

重要的表單數據說明如下:

3

 投籃得分 FG (Field Goal)

 球員平均每一場得分 PTS

 每場比賽投籃進球數 FGM

 每場比賽投籃次數 FGA

 投籃命中率 FG%

 進球數 FGM / 出手次數 FGA = 投籃命中率 FG%

 球場位置分析

由 A 區塊開始依序 A,B,C,D,E

4

第三節 開發工具介紹 Python

Python 從外在條件來看,簡潔有力、便於閱讀、獨 特神秘,是一種學習門檻較低、功能強大且豐富,屬於一 種通用型的程式語言,也是 YouTube、Google、Yahoo!、

Facebook、Dropbox、Gmail 等等知名平台都在大量使用 的程式語言

5

Jupyter notebook

Jupter Notebook 您可以把它想像成成上述所講的 IPython + Notebook 集成架 構,它是一個介於編輯器(例如 Atom)和 IDE(Spider,PyCharm,Vim)之 間的應用環境,可讓您編寫程序 Jupyter Notebook 包含了兩個組成:Web 應 用程序和筆記本文檔。時空利用其直譯式的特性,達到高互動執行結果,並且 很容易呈現數據視覺化的執行。

資料庫在處理大量的資料上是很必要的,但如果資料固定且量不

6

多,或是資料庫只會在單機上使用,且沒有讓多人使用的需求的 話,就不一定需要特別架一個資料庫系統;因此,可以使用類似

SQLite 這樣的嵌入式資料庫(embedded SQL database)

1

第五章

第一節 建立表單與表單資料庫

首先在 SQLite 資料庫中定義資料表綱要,如下所示:

第二節 撰寫程式 jupyter notebook 連結資料庫 SQLite

接著利用 jupyter notebook 頁面以 python 爬蟲程式連 結 SQLite 資料庫,程式碼如下所示:

2

執行程式碼之後,便可以將 NBA 數據匯入 SQLite 資料 庫(如下所示):

3

第三節 使用 SQL 語法找尋資料

一旦取得數據,我們便可以依照需求取得相關的資料,

例如:球員 ID,球員名子,命中率,每場平均次數,中距離出手次 數,中距離命中率等。

第四節 可分析資料(戰術)

接著,我們可以利用程式碼將以下的數據分析出來:

 中距離命中率高球員 (代表非常擅長在中距離出手)

 中距離平均出手次數球員 (代表越喜歡在中距離出手)

 禁區命中率高球員 (代表禁區防守能功能守)

4

 出賽比例高球員 (代表對球隊有高價值球員)

 中距離投籃命中率大於幾% (代表投籃水準在平均值以上)

 排序資料庫結果:

 升冪 (小到大)

 降冪 (大到小)

 如果數值相同用,設定次要的排序欄位

第五節 HTML

我們再使用 HTML 展示網頁輸入表單,讓使用者可以依 照需求查詢相關的資訊:

5

6

收尋結果

第六章 第一節 結論

第一節 結論與建議

回顧網路資料爬梳技術的發展背景,其隨著網際網路而 誕生,因大數據分析技術的發展而茁壯,可以應用在擷取各 種各樣的資料來源, 輕易加以複製與利用,正體現網際網路

7

8

9

10

11

12

13

1

參考文獻

https://freelancerlife.info/zh/blog/python-web-scraping-overview/

https://medium.com/@bindaguo/%E7%B6%B2%E8%B7

%AF%E7%88%AC%E8%9F%B2%E6%B7%BA%E8%AB%8 7-afcae0694f13

https://iter01.com/159404.html

在文檔中 網路糾察隊 (頁 11-0)

相關文件