Python網絡爬蟲:從入門到精通(附微課)
呂雲翔
- 出版商: 人民郵電
- 出版日期: 2023-07-01
- 定價: $299
- 售價: 8.5 折 $254
- 語言: 簡體中文
- 頁數: 196
- ISBN: 7115611904
- ISBN-13: 9787115611901
-
相關分類:
Web-crawler 網路爬蟲
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書主要介紹如何使用Python語言進行網絡爬蟲程序的開發,從Python語言的基本特性入手,詳細介紹Python網絡爬蟲開發的多個方面,涉及HTTP、HTML、正則表達式、JavaScript、自然語言處理、數據處理與科學計算等不同領域的內容。全書共12章,包括基礎篇、進階篇、提高篇和實戰篇4個部分。基礎篇包括第1、2、3章,分別為Python基礎及網絡爬蟲、靜態網頁抓取、數據存儲。進階篇包括第4、5、6章,分別為JavaScript與動態內容、模擬登錄與驗證碼、爬蟲數據的分析與處理。提高篇包括第7、8、9章,分別為爬蟲的靈活性和多樣性、Selenium模擬瀏覽器與網站測試、爬蟲框架Scrapy與反爬蟲。實戰篇提供了3個實戰項目供讀者學習參考。本書內容覆蓋網絡數據抓取與爬蟲編程中的主要知識和前沿技術。同時,本書在重視理論基礎的前提下,從實用性和豐富度出發,結合實例演示爬蟲程序編寫的核心流程,將理論與實踐結合,力求提高讀者的網絡爬蟲實操技能。
本書可作為高等院校數據科學、統計學、電腦科學、軟件工程等相關專業課程的教材,也可作為Python語言初學者、網絡爬蟲技術愛好者的參考書。
作者簡介
吕云翔 比利时布鲁塞尔自由大学应用科学学院应用信息技术专业硕士、经济学院工商管理专业硕士,北京航空航天大学软件学院副教授,硕士生导师。主要研究方向:软件工程、人工智能、大数据。具有多年的软件开发、项目管理、计算机教学经验,对IT行业具有较系统的认识,编著教材多部。曾获得北航教学成果一等奖、二等奖(教材)、三等奖(教材)。
目錄大綱
目 錄
基礎篇
第 1章 Python基礎及網絡爬蟲 1
1.1 瞭解Python語言 1
1.1.1 Python是什麽 1
1.1.2 Python的應用現狀 2
1.2 配置安裝Python開發環境 3
1.2.1 在Windows上安裝 3
1.2.2 在Ubuntu和macOS上安裝 3
1.2.3 IDE的使用:以PyCharm為例 4
1.2.4 Jupyter Notebook簡介 6
1.3 Python基礎知識 7
1.3.1 “Hello,World!”與數據類型 7
1.3.2 邏輯語句 12
1.3.3 Python中的函數與類 14
1.3.4 更深入瞭解Python 16
1.4 互聯網、HTTP與HTML 16
1.4.1 互聯網與HTTP 16
1.4.2 HTML 17
1.5 Hello Spider 19
1.5.1 編寫第 一個爬蟲程序 19
1.5.2 對爬蟲的思考 21
1.6 分析網站 22
1.6.1 robots.txt與Sitemap簡介 22
1.6.2 網站技術分析 24
1.6.3 網站所有者信息分析 25
1.6.4 使用開發者工具檢查目標網頁 26
章節實訓:Python環境的配置與爬蟲的運行 28
思考與練習 28
第 2章 靜態網頁抓取 29
2.1 從抓取開始 29
2.2 正則表達式 30
2.2.1 什麽是正則表達式 30
2.2.2 正則表達式的簡單使用 31
2.3 BeautifulSoup爬蟲 33
2.3.1 安裝BeautifulSoup 33
2.3.2 BeautifulSoup的基本用法 35
2.4 XPath與lxml 37
2.4.1 XPath 37
2.4.2 lxml與XPath的使用 38
2.5 遍歷頁面 40
2.5.1 抓取下一個頁面 40
2.5.2 完成爬蟲 41
2.6 使用API 42
2.6.1 API簡介 42
2.6.2 API使用示例 44
章節實訓:嗶哩嗶哩直播間信息抓取練習 47
思考與練習 47
第3章 數據存儲 48
3.1 Python中的文件 48
3.1.1 Python中的文件讀寫 48
3.1.2 對象序列化 50
3.2 Python中的字符串 50
3.3 Python中的圖片 51
3.3.1 PIL與Pillow模塊 51
3.3.2 Python與OpenCV簡介 53
3.4 CSV文件 54
3.4.1 CSV簡介 54
3.4.2 CSV的讀寫 54
3.5 數據庫的使用 56
3.5.1 MySQL的使用 56
3.5.2 SQLite 3的使用 57
3.5.3 SQLAlchemy的使用 58
3.5.4 Redis的使用 59
3.5.5 MongoDB的使用 60
3.6 其他類型的文檔 61
章節實訓:使用Python 3讀寫SQLite 3數據庫 63
思考與練習 64
進階篇
第4章 JavaScript與動態內容 65
4.1 JavaScript與AJAX技術 65
4.1.1 JavaScript語言 65
4.1.2 AJAX 68
4.2 抓取AJAX數據 69
4.2.1 分析數據 69
4.2.2 數據提取 72
4.3 抓取動態內容 76
4.3.1 動態渲染頁面 76
4.3.2 使用Selenium 76
4.3.3 PyV8與Splash 81
章節實訓:抓取人民郵電出版社熱銷圖書信息 83
思考與練習 84
第5章 模擬登錄與驗證碼 85
5.1 表單 85
5.1.1 表單與POST 85
5.1.2 POST發送表單數據 87
5.2 Cookie 89
5.2.1 Cookie簡介 89
5.2.2 在Python中Cookie的使用 90
5.3 模擬登錄網站 91
5.3.1 分析網站 91
5.3.2 Cookie方法的模擬登錄 92
5.4 驗證碼 94
5.4.1 圖片驗證碼 94
5.4.2 滑動驗證 96
章節實訓:通過Selenium模擬登錄Gitee並保存Cookie 99
思考與練習 99
第6章 爬蟲數據的分析與處理 100
6.1 Python與文本分析 100
6.1.1 文本分析簡介 100
6.1.2 jieba與SnowNLP 101
6.1.3 NLTK 104
6.1.4 文本分類與聚類 106
6.2 數據處理與科學計算 108
6.2.1 從MATLAB到Python 108
6.2.2 NumPy 108
6.2.3 Pandas 112
6.2.4 Matplotlib 116
6.2.5 Scipy與SymPy 118
章節實訓:美國新冠疫情每日新增人數的可視化 119
思考與練習 119
提高篇
第7章 爬蟲的靈活性和多樣性 120
7.1 爬蟲的靈活性——以微信數據抓取為例 120
7.1.1 用Selenium抓取網頁版微信數據 120
7.1.2 基於Python的微信API工具 123
7.2 爬蟲的多樣性 125
7.2.1 在BeautifulSoup和XPath之外 125
7.2.2 在線爬蟲應用平臺 127
7.2.3 使用urllib 129
7.3 爬蟲的部署和管理 134
7.3.1 使用服務器部署爬蟲 134
7.3.2 本地爬蟲程序的編寫 137
7.3.3 爬蟲的部署 140
7.3.4 實時查看運行結果 141
7.3.5 使用框架管理爬蟲 142
章節實訓:基於PyQuery抓取菜鳥教程 144
思考與練習 145
第8章 Selenium模擬瀏覽器與網站測試 146
8.1 測試 146
8.1.1 什麽是測試 146
8.1.2 什麽是TDD 146
8.2 Python的單元測試 147
8.2.1 使用unittest 147
8.2.2 其他方法 149
8.3 使用Python網絡爬蟲測試網站 150
8.4 使用Selenium測試 152
8.4.1 使用Selenium測試常用的網站交互 152
8.4.2 結合Selenium進行單元測試 153
章節實訓:使用Selenium抓取百度搜索引擎中關於“爬蟲”的結果 154
思考與練習 155
第9章 爬蟲框架Scrapy與反爬蟲 156
9.1 爬蟲框架 156
9.1.1 Scrapy簡介 156
9.1.2 安裝與學習Scrapy 157
9.1.3 Scrapy爬蟲編寫 159
9.1.4 其他爬蟲框架介紹 161
9.2 網站反爬蟲 162
9.2.1 反爬蟲策略簡介 162
9.2.2 偽裝headers 163
9.2.3 代理IP的使用 165
9.2.4 控制訪問頻率 168
章節實訓:使用“反反爬蟲”策略抓取某日報網頭版的標題內容 168
思考與練習 169
實戰篇
第 10章 實戰:保存感興趣的圖片 170
10.1 豆瓣網分析與爬蟲設計 170
10.1.1 從需求出發 170
10.1.2 處理登錄問題 171
10.2 編寫爬蟲程序 173
10.2.1 爬蟲腳本 173
10.2.2 程序分析 176
10.2.3 運行並查看結果 178
第 11章 實戰:抓取二手房數據並繪制熱力圖 179
11.1 數據抓取 179
11.1.1 網頁分析 179
11.1.2 代碼編寫 181
11.1.3 運行並查看結果 183
11.2 繪制熱力圖 184
第 12章 實戰:北京大興國際機場航班出發時間數據抓取 189
12.1 程序設計 189
12.1.1 網頁分析 189
12.1.2 將數據保存到數據庫 190
12.2 爬蟲編寫 191
12.2.1 前置準備 191
12.2.2 代碼編寫 192
12.2.3 運行並查看結果 195
參考文獻 196