Python 網絡爬蟲從入門到精通

呂雲翔;張揚;韓延剛

買這商品的人也買了...

商品描述

《Python網路爬蟲從入門到精通》的主旨是介紹如何結合Python進行網路爬蟲程序的開發,從Python語言的基本特性入手,詳細介紹了Python網路爬蟲開發的各個方面,涉及HTTP、HTML、JavaScript、正則表達式、自然語言處理、數據科學等不同領域的內容。全書共15章,包括Python基礎知識、網站分析、網頁解析、Python文件讀寫、Python與資料庫、AJAX技術、模擬登錄、文本與數據分析、網站測試、Scrapy爬蟲框架、爬蟲性能等多個主題。本書內容覆蓋網路抓取與爬蟲編程中的主要知識和技術,在重視理論基礎的前提下,從實用性和豐富性出發,結合實例演示了爬蟲編寫的核心流程。《Python網路爬蟲從入門到精通》適合Python語言初學者、網路爬蟲技術愛好者、數據分析從業人士以及高等院校電腦科學、軟體工程等相關專業的師生閱讀。

目錄大綱

第1章 Python與網路爬蟲1
1.1 Python語言1
1.1.1 什麼是Python1
1.1.2 Python的應用現狀2
1.2 Python的安裝與開發環境配置3
1.2.1 在Windows上安裝3
1.2.2 在Ubuntu和Mac OS上安裝4
1.2.3 PyCharm的使用5
1.2.4 Jupyter Notebook9
1.3 Python基本語法12
1.3.1 HelloWorld與資料類型12
1.3.2 邏輯語句19
1.3.3 Python中的函數與類22
1.3.4 Python從0到125
1.4 互聯網、HTTP與HTML25
1.4.1 互聯網與HTTP25
1.4.2 HTML27
1.5 Hello, Spider!29
1.5.1 第一個爬蟲程式29
1.5.2 對爬蟲的思考31
1.6 調研網站33
1.6.1 網站的robots.txt與Sitemap33
1.6.2 查看網站所用技術36
1.6.3 查看網站所有者信息37
1.6.4 使用開發者工具檢查網頁39
1.7 本章小結42

第2章 資料獲取43
2.1 從抓取開始43
2.2 規則運算式44
2.2.1 初見規則運算式44
2.2.2 規則運算式的簡單使用46
2.3 BeautifulSoup49
2.3.1 安裝與上手49
2.3.2 BeautifulSoup的基本使用52
2.4 XPath與lxml55
2.4.1 XPath55
2.4.2 lxml與XPath的使用57
2.5 遍歷頁面59
2.5.1 抓取下一個頁面59
2.5.2 完成爬蟲60
2.6 使用API63
2.6.1 API簡介63
2.6.2 API使用示例65
2.7 本章小結68

第3章 檔與資料存儲69
3.1 Python中的文件69
3.1.1 基本的文件讀寫69
3.1.2 序列化72
3.2 字串72
3.3 Python與圖片74
3.3.1 PIL與Pillow74
3.3.2 Python與OpenCV簡介76
3.4 CSV文件77
3.4.1 CSV簡介77
3.4.2 CSV的讀寫77
3.5 使用資料庫79
3.5.1 使用MySQL80
3.5.2 使用SQLite381
3.5.3 使用SQLAlchemy83
3.5.4 使用Redis85
3.6 其他類型的文檔86
3.7 本章小結90

第4章 JavaScript與動態內容91
4.1 JavaScript與AJAX技術91
4.1.1 JavaScript語言91
4.1.2 AJAX95
4.2 抓取AJAX數據96
4.2.1 分析資料96
4.2.2 資料提取100
4.3 抓取動態內容107
4.3.1 動態渲染頁面107
4.3.2 使用Selenium107
4.3.3 PyV8與Splash114
4.4 本章小結118

第5章 表單與模擬登錄119
5.1 表單119
5.1.1 表單與POST119
5.1.2 POST發送表單數據121
5.2 Cookie124
5.2.1 什麼是Cookie124
5.2.2 在Python中使用Cookie125
5.3 模擬登錄網站128
5.3.1 分析網站128
5.3.2 通過Cookie模擬登錄129
5.4 驗證碼133
5.4.1 圖片驗證碼133
5.4.2 滑動驗證134
5.5 本章小結139

第6章 資料的進一步處理140
6.1 Python與文本分析140
6.1.1 什麼是文本分析140
6.1.2 jieba與SnowNLP141
6.1.3 NLTK145
6.1.4 文本分類與聚類149
6.2 資料處理與科學計算150
6.2.1 從MATLAB到Python150
6.2.2 NumPy151
6.2.3 Pandas156
6.2.4 Matplotlib163
6.2.5 SciPy與SymPy167
6.3 本章小結167

第7章 更靈活的爬蟲168
7.1 更靈活的爬蟲—以微信數據抓取為例168
7.1.1 用Selenium抓取Web微信信息168
7.1.2 基於Python的微信API工具172
7.2 更多樣的爬蟲175
7.2.1 在BeautifulSoup和XPath之外175
7.2.2 線上爬蟲應用平臺179
7.2.3 使用urllib181
7.3 爬蟲的部署和管理190
7.3.1 配置遠端主機190
7.3.2 編寫本地爬蟲192
7.3.3 部署爬蟲198
7.3.4 查看運行結果199
7.3.5 使用爬蟲管理框架200
7.4 本章小結203

第8章 流覽器模擬與網站測試204
8.1 關於測試204
8.1.1 什麼是測試204
8.1.2 什麼是TDD205
8.2 Python的單元測試205
8.2.1 使用unittest205
8.2.2 其他方法208
8.3 使用Python爬蟲測試網站209
8.4 使用Selenium測試212
8.4.1 Selenium測試常用的網站交互212
8.4.2 結合Selenium進行單元測試214
8.5 本章小結215

第9章 更強大的爬蟲216
9.1 爬蟲框架216
9.1.1 Scrapy是什麼216
9.1.2 Scrapy安裝與入門218
9.1.3 編寫Scrapy爬蟲221
9.1.4 其他爬蟲框架223
9.2 網站反爬蟲224
9.2.1 反爬蟲的策略224
9.2.2 偽裝headers225
9.2.3 使用代理228
9.2.4 訪問頻率232
9.3 多進程與分散式233
9.3.1 多進程程式設計與爬蟲抓取233
9.3.2 分散式爬蟲235
9.4 本章小結235

第10章 爬蟲實踐:火車票餘票即時提醒236
10.1 程式設計236
10.1.1 分析網頁236
10.1.2 理解返回的JSON格式資料的意義238
10.1.3 微信消息推送238
10.1.4 運行並查看微信消息243
10.2 本章小結244

第11章 爬蟲實踐:爬取二手房資料並繪製熱力圖245
11.1 數據抓取245
11.1.1 分析網頁245
11.1.2 位址轉換成經緯度247
11.1.3 編寫代碼248
11.1.4 資料下載結果252
11.2 繪製熱力圖252
11.3 本章小結259