Python3網路爬蟲寶典

Python3網路爬蟲寶典

《Python3網路爬蟲寶典》的作者是韋世東。Python3是當前市面歡迎的人工智慧和網路爬蟲語言。

基本介紹

  • 中文名:Python3網路爬蟲寶典
  • 作者:韋世東
  • 出版社:電子工業出版社
  • 出版時間:2020年9月 
  • 頁數:272 頁
  • 定價:79 元
  • 開本:16 開
  • ISBN:9787121394065
內容簡介,圖書目錄,

內容簡介

Python3是當前市面上極受歡迎的人工智慧和網路爬蟲語言。本書介紹了爬蟲方面更深入的知識。書中首先回顧了爬蟲的基礎知識;然後詳細介紹爬蟲常用工具與庫的相關知識;接著學習 Redis, 為後面的學習打下基礎;然後討論了 Redis 在分散式爬蟲中的作用以及分散式爬蟲的原理、分類與實現方法;再進一步學習增量爬取的原理與實現方法;然後通過學習網頁文本抽取方法和智慧型抽取方法實現了大規模、多網站的數據爬取;在部署方面通過了解、剖析成熟穩定的爬虫部署平台 Scrapyd,並根據實際業務需求重新構建了一套兼容性更強的爬虫部署平台;最後學習了 Python 中常用的幾個任務調度庫與框架,通過了解 Celery 邏輯與結構,我們掌握了調度相關的知識,並根據實際業務需求構建了一套支持動態任務增刪的任務調度平台。

圖書目錄

目錄
第1 章 爬蟲程式的構成和完整鏈條 ........................................................................ 1
1.1 一個簡單的爬蟲程式 ................................................................................ 1
1.2 爬蟲的完整鏈條 ........................................................................................ 3
1.3 爬取下來的數據被用在什麼地方 ............................................................ 7
1.4 爬蟲工程師常用的庫 .............................................................................. 11
1.4.1 網路請求庫 .................................................................................. 11
1.4.2 網頁文本解析............................................................................... 19
1.5 數據存儲 .................................................................................................. 30
1.5.1 將數據存入MySQL 資料庫 ........................................................ 31
1.5.2 將數據存入MongoDB 資料庫 .................................................... 34
1.5.3 將數據存入Redis 資料庫 ............................................................ 36
1.5.4 Excel 檔案的讀寫 ........................................................................ 38
1.6 小試牛刀——出版社新聞資訊爬蟲 ....................................................... 42
實踐題 ............................................................................................................... 46
本章小結 ........................................................................................................... 47
第2 章 自動化工具的使用 ...................................................................................... 48
2.1 網頁渲染工具 .......................................................................................... 48
2.1.1 WebDriver 是什麼 ........................................................................ 51
2.1.2 Selenium 的介紹和基本使用 ....................................................... 52
2.1.3 Pyppeteer 的介紹和基本使用 ...................................................... 59
2.1.4 Splash 知識擴展 ........................................................................... 61
本節小結 .................................................................................................. 62
2.2 App 自動化工具 ...................................................................................... 62
2.2.1 Android 調試橋 ............................................................................ 62
2.2.2 Airtest Project 與Poco ................................................................. 64
VIII Python3 網路爬蟲寶典
2.2.3 爬取App 中的圖片 ...................................................................... 75
2.2.4 控制多台設備............................................................................... 78
本節小結 .................................................................................................. 79
實踐題 ............................................................................................................... 79
本章小結 ........................................................................................................... 79
第3 章 增量爬取的原理與實現 .............................................................................. 80
3.1 增量爬取的分類和實現原理 .................................................................. 81
3.1.1 增量爬取的分類 ........................................................................... 81
3.1.2 增量爬取的實現原理 ................................................................... 83
本節小結 .................................................................................................. 88
3.2 增量池的複雜度和效率 .......................................................................... 88
3.2.1 增量池的時間複雜度 ................................................................... 88
3.2.2 增量池的空間複雜度 ................................................................... 95
本節小結 ................................................................................................ 103
3.3 Redis 的數據持久化 .............................................................................. 103
3.3.1 持久化方式的分類和特點 ......................................................... 103
3.3.2 RDB 持久化的實踐 ................................................................... 106
3.3.3 AOF 持久化的實踐 .................................................................... 112
3.3.4 Redis 密碼持久化 ...................................................................... 115
本節小結 ................................................................................................ 115
實踐題 ............................................................................................................. 115
本章小結 ......................................................................................................... 116
第4 章 分散式爬蟲的設計與實現 ........................................................................ 117
4.1 分散式爬蟲的原理和分類 .................................................................... 117
4.1.1 分散式爬蟲的原理 ..................................................................... 117
4.1.2 分散式爬蟲的分類 ..................................................................... 120
4.1.3 共享佇列的選擇 ......................................................................... 122
本節小結 ................................................................................................ 125
4.2 分散式爬蟲庫Scrapy-Redis .................................................................. 126
4.2.1 Scrapy-Redis 的介紹和基本使用 .............................................. 127
4.2.2 去重器、調度器和佇列的源碼解析 ......................................... 129
目錄 IX
本節小結 ................................................................................................ 134
4.3 基於Redis 的分散式爬蟲 ..................................................................... 134
4.3.1 對等分散式爬蟲的實現 ............................................................. 135
4.3.2 主從分散式爬蟲的實現 ............................................................. 139
本節小結 ................................................................................................ 141
4.4 基於RabbitMQ 的分散式爬蟲 ............................................................. 141
4.4.1 RabbitMQ 的安裝和基本操作 ................................................... 142
4.4.2 分散式爬蟲的具體實現 ............................................................. 146
本節小結 ................................................................................................ 152
實踐題 ............................................................................................................. 152
本章小結 ......................................................................................................... 152
第5 章 網頁正文自動化提取方法 ........................................................................ 153
5.1 Python Readability ................................................................................. 155
5.2 基於文本及符號密度的網頁正文提取方法 ......................................... 158
5.3 GeneralNewsExtractor ............................................................................ 162
5.3.1 GeneralNewsExtractor 的安裝和使用 ....................................... 162
5.3.2 GeneralNewsExtractor 的源碼解讀 ........................................... 165
本節小結 ................................................................................................ 175
本章小結 ......................................................................................................... 175
第6 章 Python 項目打包部署與定時調度 ........................................................... 176
6.1 如何判斷項目是否需要部署 ................................................................ 176
6.2 爬虫部署平台Scrapyd .......................................................................... 179
6.2.1 Scrapyd 的安裝和服務啟動 ....................................................... 179
6.2.2 爬蟲項目的打包和部署 ............................................................. 180
本節小結 ................................................................................................ 184
6.3 Scrapyd 源碼深度剖析 .......................................................................... 185
6.4 項目打包與解包運行實戰 .................................................................... 197
6.4.1 用Setuptools 打包項目 .............................................................. 197
6.4.2 運行EGG 包中的Python 項目 ................................................. 199
6.4.3 編碼實現Python 項目打包 ....................................................... 201
本節小結 ................................................................................................ 203
X Python3 網路爬蟲寶典
6.5 定時功能 ................................................................................................ 203
6.5.1 作業系統提供的定時功能 ......................................................... 203
6.5.2 程式語言實現的定時功能 ......................................................... 206
6.5.3 APScheduler ............................................................................... 209
本節小結 ................................................................................................ 212
6.6 實戰:開發Python 項目管理平台Sailboat ......................................... 212
6.6.1 Sailboat 的模組規劃和技術選型 ............................................... 212
6.6.2 Sailboat 的許可權設計思路 ........................................................... 214
6.6.3 Sailboat 的數據結構設計 ........................................................... 215
6.6.4 Sailboat 基礎結構的搭建 ........................................................... 218
6.6.5 Sailboat 用戶註冊和登錄接口的編寫 ....................................... 220
6.6.6 Sailboat 許可權驗證裝飾器的編寫 ............................................... 229
6.6.7 Sailboat 項目部署接口和檔案操作對象的編寫 ....................... 232
6.6.8 Sailboat 項目調度接口的編寫 ................................................... 240
6.6.9 Sailboat 執行器的編寫和日誌的生成 ....................................... 243
6.6.10 Sailboat 定時調度功能的實現 ................................................. 248
6.6.11 Sailboat 異常監控和釘釘機器人通知功能的編寫 ................. 249
本節小結 ................................................................................................ 258
6.7 分散式調度平台Crawlab 核心架構解析 ............................................. 259
實踐題 ............................................................................................................. 262
本章小結 ......................................................................................................... 262

相關詞條

熱門詞條

聯絡我們