使用 Python 搜刮網路資料的 12堂實習課
內容描述
網路爬蟲是AI範疇中,
取得資料與儲存的一項重要技能,
而Python是爬蟲過程中相當好用的工具
全書以簡單的Python程式為主軸,讓您可以輕鬆學會如何利用Python的模組擷取公開的網站資料、網頁內容,並建立自己的自動化爬蟲程式,增進您在網路上搜刮資料的能力與效率,是已具有Python基礎的學習者最佳的爬蟲入門工具書。
在本書中我們將學會使用以下的Python開發環境、模組及框架:
Thonny
Jupyter Notebook
requests
json
csv
re
xlrd
BeautifulSoup
Selenium
sqlite3
mysql
pymongo
pyinstaller
Scrapy
pyautogui
並學習如何擷取以下的幾種網站:
☑大學網站的焦點新聞頁面
☑政府公開資訊網站
☑即時新聞網站標題、內容、圖片
☑汽車網站之車款資訊及二手車在庫資訊
☑銀行網站之匯率資料擷取
☑中央氣象局之氣溫觀測資訊
☑Ptt八卦版年齡宣告按鈕及Ptt討論區貼文擷取
☑網路書店暢銷書排行榜
☑股市網站財經新聞
☑線上購物網站產品資訊
☑名言佳句範例網站
☑台灣證券交易所股票資訊
☑Dcard梗圖下載
☑台灣運彩官網資訊
☑Mobile01討論區貼文
★本書特色★
✪了解網站、網頁、瀏覽器間的關係,認識爬蟲程式
✪了解網路上格式HTML/CSV/JSON/XLSX
✪使用requests模組取得網路上的資料
✪擷取及解析JSON及CSV格式資料檔案
✪利用Regular Expression及BeautifulSoup模組剖析網頁資料
✪活用Chrome開發人員工具找出網頁中特定資料的CSS選擇器內容
✪使用Selenium自動化工具擷取動態網頁
✪把擷取的資料儲存到MySQL及MongoDB資料庫
✪利用排程器做到自動化資料擷取及通知的功能
✪透過Scrapy框架建立爬蟲程式,大量搜刮資料
目錄大綱
第1堂 認識網站與網路爬蟲原理
1-1 什麼是爬蟲程式
1-2 瀏覽器與網頁伺服器
1-3 從網站下載資料的概念與原理
1-4 本書程式執行環境的建立
1-5 習題
第2堂 快速了解網路資料格式
2-1 HTML/CSS
2-2 CSV
2-3 JSON
2-4 XLS/XLSX
2-5 習題
第3堂 擷取網頁資料基礎
3-1 requests模組介紹與使用
3-2 資料檔案存取
3-3 網路公開資訊CSV格式讀取實例
3-4 網路公開資訊JSON格式讀取實例
3-5 習題
第4堂 HTML網頁剖析基礎
4-1 使用Regular Expression剖析網頁
4-2 使用BeautifulSoup剖析網頁
4-3 新聞網站之擷取與儲存
4-4 網頁圖形檔之擷取與儲存
4-5 習題
第5堂 HTML網頁剖析實務
5-1 Jupyter Notebook安裝與使用
5-2 Chrome開發人員工具
5-3 活用表單查詢存取資料
5-4 新聞網站內容之擷取與儲存
5-5 習題
第6堂 CSS選擇器基礎與活用
6-1 CSS 選擇器介紹
6-2 Selenium安裝與使用
6-3 動態網頁資料擷取
6-4 表單登入網頁擷取
6-5 習題
第7堂 MySQL資料庫儲存
7-1 資料庫與SQL
7-2 SQLite資料庫簡介與操作
7-3 MySQL資料庫系統安裝
7-4 MySQL資料庫操作實例
7-5 習題
第8堂 MongoDB資料庫操作
8-1 MongoDB安裝與操作
8-2 使用Python儲存資料
8-3 使用Python讀取資料
8-4 MongoDB資料庫應用實例
8-5 習題
第9堂 自動化資料擷取
9-1 自動化資料擷取程式
9-2 電子郵件通知實作
9-3 建立可執行檔
9-4 作業系統排程設定
9-5 習題
第10堂 Scrapy初階
10-1 Scrapy簡介與安裝
10-2 Scrapy Shell測試與練習
10-3 Scrapy專案檔案的編輯與執行
10-4 爬取網頁內容並儲存到資料庫
10-5 習題
第11堂 Scrapy 爬蟲實務
11-1 學校網頁資料爬取實例
11-2 新聞網站資料爬取實例
11-3 PTT討論區爬取實例
11-4 習題
第12堂 爬蟲實戰技巧及實例
12-1 活用pyautogui模組和網頁互動
12-2 Dcard梗圖爬取實例
12-3 下載無限捲動網頁內容
12-4 MOBILE01討論區爬取實例
12-5 車商二手車資料下載實例
12-6 習題
附錄 反爬蟲與反反爬蟲的戰爭
a-1 網站的robotstxt
a-2 User-Agent
a-3 頻繁的request請求
a-4 JavaScript程式動態產生的網頁
a-5 我不是機器人驗證
a-6 CAPTCHA和reCaptcha驗證碼
a-7 人機合作爬蟲程式解決驗證碼問題
作者介紹
何敏煌
國立交通大學資訊科學博士,現任職於國立高雄科技大學博雅教育中心,平時除了研究KVM虛擬雲端容錯與分散式系統相關技術之外,也利用閒暇之餘致力於推廣資訊科技、Maker自學課程、與程式設計教育。個人網站:http://drho.club。