實戰Python網路爬蟲

實戰Python網路爬蟲

《實戰Python網路爬蟲》是2019年清華大學出版社出版的一本圖書,作者是黃永祥

基本介紹

  • 書名:實戰Python網路爬蟲
  • 作者:黃永祥
  • ISBN:9787302524892
  • 定價:99元
  • 出版社:清華大學出版社
  • 出版時間:2019.06.01
內容簡介,圖書目錄,

內容簡介

本書從原理到實踐,循序漸進地講述了使用Python開發網路爬蟲的核心技術。全書從邏輯上可分為基礎篇、實戰篇和爬蟲框架篇三部分。基礎篇主要介紹了編寫網路爬蟲所需的基礎知識,包括網站分析、數據抓取、數據清洗和數據入庫。網站分析講述如何使用Chrome和Fiddler抓包工具對網站做全面分析;數據抓取介紹了Python爬蟲模組Urllib和Requests的基礎知識;數據清洗主要介紹字元串操作、正則和BeautifulSoup的使用;數據入庫講述了MySQL和MongoDB的操作,通過ORM框架SQLAlchemy實現數據持久化,進行企業級開發。實戰篇深入講解了分散式爬蟲、爬蟲軟體的開發、12306搶票程式和微博爬取等。框架篇主要講述流行的爬蟲框架Scrapy,並以Scrapy與Selenium、Splash、Redis結合的項目案例,讓讀者深層次了解Scrapy的使用。此外,本書還介紹了爬蟲的上線部署、如何自己動手開發一款爬蟲框架、反爬蟲技術的解決方案等內容。
本書使用Python3.X編寫,技術先進,項目豐富,適合欲從事爬蟲工程師和數據分析師崗位的初學者、大學生和研究生使用,也很適合有一些網路爬蟲編寫經驗,但希望更加全面、深入理解Python爬蟲的開發人員使用。

圖書目錄

第1章 理解網路爬蟲 1
1.1 爬蟲的定義 1
1.2 爬蟲的類型 2
1.3 爬蟲的原理 2
1.4 爬蟲的搜尋策略 4
1.5 爬蟲的合法性與開發流程 5
1.6 本章小結 6
第2章 爬蟲開發基礎 7
2.1 HTTP與HTTPS 7
2.2 請求頭 9
2.3 Cookies 10
2.4 HTML 11
2.5 JavaScript 12
2.6 JSON 14
2.7 Ajax 14
2.8 本章小結 15
第3章 Chrome分析網站 16
3.1 Chrome開發工具 16
3.2 Elements標籤 17
3.3 Network標籤 18
3.4 分析QQ音樂 20
3.5 本章小結 23
第4章 Fiddler抓包 24
4.1 Fiddler介紹 24
4.2 Fiddler安裝配置 24
4.3 Fiddler抓取手機套用 26
4.4 Toolbar工具列 29
4.5 Web Session列表 30
4.6 View選項視圖 32
4.7 Quickexec命令行 33
4.8 本章小結 34
第5章 爬蟲庫Urllib 35
5.1 Urllib簡介 35
5.2 傳送請求 36
5.3 複雜的請求 37
5.4 代理IP 38
5.5 使用Cookies 39
5.6 證書驗證 40
5.7 數據處理 41
5.8 本章小結 42
第6章 爬蟲庫Requests 43...
第6章爬蟲庫Requests 43
6.1Requests簡介及安裝 43
6.2請求方式 44
6.3複雜的請求方式 45
6.4下載與上傳 47
6.5本章小結 49
第7章Requests-Cache爬蟲快取 50
7.1簡介及安裝 50
7.2在Requests中使用快取 50
7.3快取的存儲機制 53
7.4本章小結 54
第8章爬蟲庫Requests-HTML 55
8.1簡介及安裝 55
8.2請求方式 56
8.3數據清洗 56
8.4Ajax動態數據抓取 59
8.5本章小結 61
第9章網頁操控與數據爬取 62
9.1了解Selenium 62
9.2安裝Selenium 63
9.3網頁元素定位 66
9.4網頁元素操控 70
9.5常用功能 73
9.6實戰:百度自動答題 80
9.7本章小結 85
第10章手機App數據爬取 86
10.1Appium簡介及原理 86
10.2搭建開發環境 87
10.3連線Android系統 92
10.4App的元素定位 97
10.5App的元素操控 99
10.6實戰:淘寶商品採集 102
10.7本章小結 107
第11章Splash、Mitmproxy與Aiohttp 109
11.1Splash動態數據抓取 109
11.1.1簡介及安裝 109
11.1.2使用Splash的API接口 112
11.2Mitmproxy抓包 116
11.2.1簡介及安裝 116
11.2.2用Mitmdump抓取愛奇藝視頻 116
11.3Aiohttp高並發抓取 119
11.3.1簡介及使用 119
11.3.2Aiohttp異步爬取小說排行榜 123
11.4本章小結 126
第12章驗證碼識別 128
12.1驗證碼的類型 128
12.2OCR技術 129
12.3第三方平台 131
12.4本章小結 134
第13章數據清洗 136
13.1字元串操作 136
13.1.1截取 136
13.1.2替換 137
13.1.3查找 137
13.1.4分割 138
13.2正則表達式 139
13.2.1正則語法 140
13.2.2正則處理函式 141
13.3BeautifulSoup數據清洗 144
13.3.1BeautifulSoup介紹與安裝 144
13.3.2BeautifulSoup的使用示例 146
13.4本章小結 149
第14章文檔數據存儲 150
14.1CSV數據的寫入和讀取 150
14.2Excel數據的寫入和讀取 151
14.3Word數據的寫入和讀取 154
14.4本章小結 156
第15章ORM框架 158
15.1SQLAlchemy介紹與安裝 158
15.1.1運算元據庫的方法 158
15.1.2SQLAlchemy框架介紹 158
15.1.3SQLAlchemy的安裝 159
15.2連線資料庫 160
15.3創建數據表 162
15.4添加數據 164
15.5更新數據 165
15.6查詢數據 166
15.7本章小結 168
第16章MongoDB資料庫操作 169
16.1MongoDB介紹 169
16.2MogoDB的安裝及使用 170
16.2.1MongoDB的安裝與配置 170
16.2.2MongoDB可視化工具 172
16.2.3PyMongo的安裝 173
16.3連線MongoDB資料庫 173
16.4添加文檔 174
16.5更新文檔 175
16.6查詢文檔 176
16.7本章小結 178
第17章實戰:爬取51Job招聘信息 180
17.1項目分析 180
17.2獲取城市編號 180
17.3獲取招聘職位總頁數 182
17.4爬取每個職位信息 184
17.5數據存儲 188
17.6爬蟲配置檔案 190
17.7本章小結 191
第18章實戰:分散式爬蟲——QQ音樂 193
18.1項目分析 193
18.2歌曲下載 194
18.3歌手的歌曲信息 198
18.4分類歌手列表 201
18.5全站歌手列表 203
18.6數據存儲 204
18.7分散式爬蟲 205
18.7.1分散式概念 205
18.7.2並發庫concurrent.futures 206
18.7.3分散式策略 207
18.8本章小結 209
第19章實戰:12306搶票爬蟲 211
19.1項目分析 211
19.2驗證碼驗證 211
19.3用戶登錄與驗證 214
19.4查詢車次 219
19.5預訂車票 225
19.6提交訂單 227
19.7生成訂單 233
19.8本章小結 236
第20章實戰:玩轉微博 244
20.1項目分析 244
20.2用戶登錄 244
20.3用戶登錄(帶驗證碼) 253
20.4關鍵字搜尋熱門微博 259
20.5發布微博 264
20.6關注用戶 268
20.7點讚和轉發評論 271
20.8本章小結 277
第21章實戰:微博爬蟲軟體開發 278
21.1GUI庫及PyQt5的安裝與配置 278
21.1.1GUI庫 278
21.1.2PyQt5安裝及環境搭建 279
21.2項目分析 281
21.3軟體主界面 284
21.4相關服務界面 288
21.5微博採集界面 292
21.6微博發布界面 297
21.7微博爬蟲功能 308
21.8本章小結 315
第22章Scrapy爬蟲開發 317
22.1認識與安裝Scrapy 317
22.1.1常見爬蟲框架介紹 317
22.1.2Scrapy的運行機制 318
22.1.3安裝Scrapy 319
22.2Scrapy爬蟲開發示例 320
22.3Spider的編寫 326
22.4Items的編寫 329
22.5ItemPipeline的編寫 330
22.5.1用MongoDB實現數據入庫 330
22.5.2用SQLAlchemy實現數據入庫 332
22.6Selectors的編寫 333
22.7檔案下載 336
22.8本章小結 339
第23章Scrapy擴展開發 341
23.1剖析Scrapy中間件 341
23.1.1SpiderMiddleware中間件 342
23.1.2DownloaderMiddleware中間件 344
23.2自定義中間件 347
23.2.1設定代理IP服務 347
23.2.2動態設定請求頭 350
23.2.3設定隨機Cookies 353
23.3實戰:Scrapy+Selenium爬取豆瓣電影評論 355
23.3.1網站分析 355
23.3.2項目設計與實現 357
23.3.3定義Selenium中間件 359
23.3.4開發Spider程式 360
23.4實戰:Scrapy+Splash爬取B站動漫信息 362
23.4.1Scrapy_Splash實現原理 363
23.4.2網站分析 363
23.4.3項目設計與實現 365
23.4.4開發Spider程式 367
23.5實戰:Scrapy+Redis分散式爬取貓眼排行榜 369
23.5.1Scrapy_Redis實現原理 369
23.5.2安裝Redis資料庫 371
23.5.3網站分析 372
23.5.4項目設計與實現 373
23.5.5開發Spider程式 375
23.6分散式爬蟲與增量式爬蟲 377
23.6.1基於管道實現增量式 378
23.6.2基於中間件實現增量式 381
23.7本章小結 384
第24章實戰:爬取鏈家樓盤信息 386
24.1項目分析 386
24.2創建項目 389
24.3項目配置 389
24.4定義存儲欄位 391
24.5定義管道類 392
24.6編寫爬蟲規則 396
24.7本章小結 400
第25章實戰:QQ音樂全站爬取 402
25.1項目分析 402
25.2項目創建與配置 403
25.2.1項目創建 403
25.2.2項目配置 403
25.3定義存儲欄位和管道類 405
25.3.1定義存儲欄位 405
25.3.2定義管道類 405
25.4編寫爬蟲規則 408
25.5本章小結 413
第26章爬蟲的上線部署 415
26.1非框架式爬虫部署 415
26.1.1創建可執行程式 415
26.1.2制定任務計畫程式 417
26.1.3創建服務程式 421
26.2框架式爬虫部署 424
26.2.1Scrapyd部署爬蟲服務 424
26.2.2Gerapy爬蟲管理框架 429
26.3本章小結 434
第27章反爬蟲的解決方案 435
27.1常見的反爬蟲技術 435
27.2基於驗證碼的反爬蟲 436
27.2.1驗證碼出現的情況 437
27.2.2解決方案 438
27.3基於請求參數的反爬蟲 439
27.3.1請求參數的數據來源 439
27.3.2請求參數的查找 440
27.4基於請求頭的反爬蟲 441
27.5基於Cookies的反爬蟲 443
27.6本章小結 447
第28章自己動手開發爬蟲框架 449
28.1框架設計說明 449
28.2異步爬取方式 450
28.3數據清洗機制 455
28.4數據存儲機制 457
28.5實戰:用自製框架爬取豆瓣電影 463
28.6本章小結 468

相關詞條

熱門詞條

聯絡我們