Python網路爬蟲快速入門

Python網路爬蟲快速入門

《Python網路爬蟲快速入門》是2021年11月大連理工大學出版社出版的教材,作者是耿倩、白國政。

本書分為四部分共十章,主要內容包括:爬蟲基礎和開發環境的配置、網頁前端基礎、網路庫urllib、網路庫requests等。

基本介紹

  • 書名:Python網路爬蟲快速入門
  • 作者:耿倩、白國政
  • 出版社:大連理工大學出版社
  • 出版時間:2021年11月
  • ISBN:9787568534567
內容簡介,教材目錄,

內容簡介

《Python網路爬蟲快速入門》是新世紀高職高專教材編審委員會組編的大數據技術專業系列規劃教材之一。
隨著大數據時代的到來,網際網路上的信息每天都在爆炸式增長。同時隨著“網際網路+”國家戰略的推進,網際網路上的大數據套用價值變得多樣化,因此,網際網路數據成為大數據教學和研究套用的重要數據源。在這種背景下,數據採集技術成為很多人迫切需要掌握的技術。
網路爬蟲是一種按照一定規則,自動請求全球資訊網網站並提取網路數據的程式,它可以代替人力進行信息採集,能夠自動採集並高效利用網際網路中的數據。Python是一種解釋型、面向對象、動態數據類型的高級程式設計語言。Python語言方便、高效的特點使其成為爬蟲程式編寫時最為流行的程式語言之一。Python功能強大的第三方庫無疑降低了編寫爬蟲程式的難度和獲取信息的成本。
本教材從初學者的角度出發,由淺入深地講解了學習網路爬蟲的基礎知識,以及爬蟲採集技術、信息提取技術等的基本使用方法,以幫助讀者掌握爬蟲的相關技能,使其能夠獨立編寫自己的爬蟲項目。本教材在內容安排上,充分考慮了知識體系的完整性和獨立性,涵蓋了Web頁面及相關技術,爬取和解析網頁數據的相關技術,以及數據存儲技術等內容。全書共10章內容,第1、2章介紹Python環境的搭建以及掌握爬蟲的實現原理,第3、4章介紹爬蟲的網路庫,包括urllib、request庫的使用,第5-8章講解了解析網頁數據的相關技術以及效率更高的多執行緒爬蟲,包括正則表達式、XPath、Beautiful Soup以及封裝了這些技術的Python模組或庫,希望讀者在解析網頁數據時,可以根據具體情況靈活選擇合理的技術進行運用。第9、10章主要介紹存儲爬蟲數據,包括檔案存儲和資料庫存儲。
本教材內容全面,結構清晰,通過最簡單的Python程式入手,在網路爬蟲這一核心主題下循序漸進,不斷深入。網路爬蟲的實踐性和操作系比較強,本教材提供了豐富代碼供讀者參考,並且從實際出發,選取了實用性與趣味性兼具的主題進行網路爬蟲實戰。同時本教材還將近年來發生的比較典型的網路爬蟲工作案例融入教學當中,使學生在學習專業知識的同時,自覺踐行社會主義核心價值觀,不斷強化職業道德素質,築牢法律意識,維護法律權威,樹立正確的世界觀,人生觀,價值觀。在實現民族復興的偉大征程中,做懂專業,修美德,守法律,知使命,敢擔當,勇拼搏的時代新人。

教材目錄

第1部分 基礎概念
第1章 爬蟲基礎和開發環境的配置 3
 1.1 爬蟲產生的背景和概念 3
  1.1.1 爬蟲產生的背景 3
  1.1.2 爬蟲的概念 4
 1.2 爬蟲的用途和分類 4
  1.2.1 爬蟲的用途 4
  1.2.2 爬蟲的分類 6
 1.3 爬蟲實現原理 7
  1.3.1 通用爬蟲工作原理 7
  1.3.2 聚焦爬蟲工作原理 8
 1.4 爬蟲爬取網頁的詳細流程 9
 1.5 防爬蟲應對策略 10
 1.6 爬蟲數據採集與挖掘的合規性 13
 1.7 開發環境的配置 14
  1.7.1 在Windows上安裝Python 14
  1.7.2 Pycharm的安裝與使用 16
 習 題 20
第2章 網頁前端基礎 22
 2.1 URL (統一資源定位符) 22
  2.1.1 協定頭 22
  2.1.2 伺服器地址和連線埠 23
  2.1.3 路徑 23
 2.2 超文本 23
 2.3 HTTP與HTTPS 23
  2.3.1 HTTP版本的技術特性 23
  2.3.2 HTTPS 25
 2.4 HTTP網路請求原理 25
  2.4.1 瀏覽器顯示網頁過程 26
  2.4.2 客戶端 HTTP 請求格式 26
  2.4.3 伺服器HTTP相應格式 29
 2.5 ROBOTS協定 31
  2.5.1 Robots協定的內涵 31
  2.5.2 經典robots.txt例子 31
 2.6 網頁基礎 35
  2.6.1 HTML語言規範 35
  2.6.2 CSS簡述 36
  2.6.3 節點樹及節點間的關係 37
 2.7 Session與Cookie 38
  2.7.1 Cookie 39
  2.7.2 Session 41
 習 題 42
案例1 爬蟲合法嗎? 43
第2部分 網路庫
第3章 網路庫urllib 47
 3.1 傳送請求與獲得回響 48
  3.1.1 用urlopen函式傳送HTTP GET請求 48
  3.1.2 用urlopen函式傳送HTTP POST請求 49
  3.1.3 請求逾時 50
  3.1.4 設定HTTP請求頭 51
  3.1.5 使用代理 53
  3.1.6 讀取和設定Cookie 54
 3.2 異常處理 56
 3.3 解析連結 57
  3.3.1 urlparse與urlunparse 57
  3.3.2 urlsplit和urlunsplit 59
  3.3.3 urljoin 60
  3.3.4 urlencode 60
  3.3.5 quote與unquote 61
  3.3.6 parse_qs與parse_qsl 61
 3.4 解析robots.txt檔案 62
 3.5 階段案例 63
 習 題 64
第4章 網路庫requests 66
 4.1 基本用法 66
  4.1.1 requests的GET請求 66
  4.1.2 添加HTTP請求頭 68
  4.1.3 抓取二進制數據 69
  4.1.4 POST請求 70
  4.1.5 回響數據 70
 4.2 高級套用 71
  4.2.1 處理Cookie 71
  4.2.2 使用同一會話(Session) 73
  4.2.3 使用代理 74
  4.2.4 逾時 75
  4.2.6 請求打包 76
 4.3 階段案例 77
 習 題 78
案例2 大眾點評訴百度案一審宣判百度賠償323萬 80
第3部分 解析庫
第5章 正則表達式 83
 5.1 了解正則表達式 83
  5.1.1 原子 83
  5.1.2 元字元 84
 5.2 re庫概述 85
  5.2.1 match方法和group方法 85
  5.2.2 search方法 89
  5.2.3 findall方法和finditer方法 95
  5.2.4 sub方法和subn方法 96
  5.2.5 split方法 97
 5.3 使用正則表達式抓取數據 98
  5.3.1 抓取標籤間的內容 98
  5.3.2 抓取標籤中的參數 100
  5.3.3 字元串處理及替換 102
 5.4 階段案例 102
 習 題 105
第6章 XPath和lxml解析庫 106
 6.1 lxml基礎 106
  6.1.1 安裝lxml 106
  6.1.2 操作XML 107
  6.1.3 操作HTML 108
  6.1.4 操作字元串 109
 6.2 XPATH語法 110
 6.3 lxml庫的基本使用 111
  6.3.1 選取所有節點 112
  6.3.2 選取子節點 114
  6.3.3 屬性匹配與獲取 115
  6.3.4 選取父節點 116
  6.3.5 多屬性匹配 116
  6.3.6 按序選擇節點 117
  6.3.7 在Chrome中自動獲得XPath代碼 118
 6.4 階段案例 120
 習 題 122
第7章 解析庫BeautifulSoup4 124
 7.1 BeautifulSoup概述 124
  7.1.1 BeautifulSoup4安裝 124
  7.1.2 選擇解析器 125
 7.2 BeautifulSoup對象 126
  7.2.1 使用Beautiful Soup解析HTML代碼 126
  7.2.2 節點選擇器 126
 7.3 方法和css選擇器 135
  7.3.1 方法選擇器 135
  7.3.2 CSS選擇器 139
 7.4 階段案例 144
 習 題 146
第8章 多執行緒爬蟲 148
 8.1 執行緒和進程 148
  8.1.1 進程 148
  8.1.2 執行緒 148
 8.2 Python與執行緒 149
  8.2.1 使用單執行緒執行程式 149
  8.2.2 使用多執行緒執行程式 150
  8.2.3 為執行緒函式傳遞參數 151
  8.2.4 執行緒和鎖 152
 8.3 高級執行緒模組(threading) 153
  8.3.1 Thread類與執行緒函式 155
  8.3.2 Thread類與執行緒對象 156
  8.3.3 從Thread類繼承 157
  8.3.4 執行緒同步 159
  8.3.5 生產者-消費者問題與queue模組 161
 8.4 多進程 163
  8.4.1 創建子進程 163
  8.4.2 將進程定義為類 164
  8.4.3 創建多個進程 165
 8.5 階段案例 166
 習 題 172
案例3 頭條前高管反噬被判刑 173
第4部分 數據存儲
第9章 檔案存儲 177
 9.1 操作檔案 177
  9.1.1 讀檔案和寫檔案 178
  9.1.2 讀行和寫行 180
  9.1.3 使用FileInput對象讀取檔案 182
 9.2 讀寫XML檔案 183
  9.2.1 讀取與搜尋XML檔案 183
  9.2.2 字典轉換為XML字元串 184
  9.2.3 XML字元串轉換為字典 186
 9.3 讀寫JSON檔案 187
  9.3.1 JSON字元串與字典互相轉換 187
  9.3.2 將JSON字元串轉換為XML字元串 189
  9.3.3 將JSON數據轉儲到檔案中 190
  9.3.4 從檔案中讀取JSON 191
 9.4 讀寫CSV檔案 191
  9.4.1 寫入CSV檔案 191
  9.4.2 讀取CSV檔案 194
 9.5 階段案例 194
 習 題 197
第10章 資料庫存儲 198
 10.1 MySQL資料庫 198
  10.1.1 安裝MySQL資料庫 198
  10.1.2 在Python中使用MySQL 200
 10.2 MongoDB資料庫 202
  10.2.1 安裝MongoDB資料庫 203
  10.2.2 安裝圖形化管理工具Robo3T 205
  10.2.3 PyMongo的安裝與使用 207
 10.3 Redis資料庫 213
  10.3.1 Redis的搭建和使用 213
  10.3.2 Redis-py的安裝與使用 216
 10.4 階段案例 217
 習 題 220
案例4 為泄憤,利用“爬蟲”刪數據 221
參考文獻 223

相關詞條

熱門詞條

聯絡我們