第二章 文獻探討
第三節 什麼是網頁爬蟲
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