實戰 Python 網絡爬蟲
黃永祥
- 出版商: 清華大學
- 出版日期: 2019-06-01
- 定價: $594
- 售價: 8.5 折 $505
- 語言: 簡體中文
- ISBN: 7302524890
- ISBN-13: 9787302524892
-
相關分類:
Web-crawler 網路爬蟲
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$354$336 -
$403Python 爬蟲開發與項目實戰
-
$403Metasploit 滲透測試指南 (修訂版)(Metasploit:the Penetration Tester's Guide)
-
$505Python3 網絡爬蟲開發實戰
-
$620$490 -
$294$279 -
$880$695 -
$450$338 -
$354$336 -
$450$351 -
$580$458 -
$490$387 -
$650$553 -
$378Python 網絡爬蟲實戰
-
$620$490 -
$500$375 -
$520$411 -
$460$414 -
$580$452 -
$580$493 -
$680$510 -
$414$393 -
$580$435 -
$450$338 -
$450$338
相關主題
商品描述
本書從原理到實踐,循序漸進地講述了使用Python開發網絡爬蟲的核心技術。全書從邏輯上可分為基礎篇、實戰篇和爬蟲框架篇三部分。基礎篇主要介紹了編寫網絡爬蟲所需的基礎知識,包括網站分析、數據抓取、數據清洗和數據入庫。網站分析講述如何使用Chrome和Fiddler抓包工具對網站做全面分析;數據抓取介紹了Python爬蟲模塊Urllib和Requests的基礎知識;數據清洗主要介紹字符串操作、正則和BeautifulSoup的使用;數據入庫講述了MySQL和MongoDB的操作,通過ORM框架SQLAlchemy實現數據持久化,進行企業級開發。實戰篇深入講解了分佈式爬蟲、爬蟲軟件的開發、12306搶票程序和微博爬取等。框架篇主要講述流行的爬蟲框架Scrapy,並以Scrapy與Selenium、Splash、Redis結合的項目案例,讓讀者深層次瞭解Scrapy的使用。此外,本書還介紹了爬蟲的上線部署、如何自己動手開發一款爬蟲框架、反爬蟲技術的解決方案等內容。 本書使用Python 3.X編寫,技術先進,項目豐富,適合欲從事爬蟲工程師和數據分析師崗位的初學者、大學生和研究生使用,也很適合有一些網絡爬蟲編寫經驗,但希望更加全面、深入理解Python爬蟲的開發人員使用。
作者簡介
黃永祥,CSDN博客專家和簽約講師,多年軟件研發經驗,主要從事機器人流程系統研發、大數據系統研發、網絡爬蟲研發以及自動化運維繫統研發。擅長使用Python編寫高質量代碼,對Python有深入研究,熱愛分享和新技術的探索。
目錄大綱
章理解網絡爬蟲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.1 Requests簡介及安裝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.4 Ajax動態數據抓取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
0章手機App數據爬取86
10.1 Appium簡介及原理86
10.2搭建開發環境87
10.3連接Android系統92
10.4 App的元素定位97
10.5 App的元素操控99
10.6實戰:淘寶商品採集102
10.7本章小結107
1章Splash、Mitmproxy與Aiohttp 109
11.1 Splash動態數據抓取109
11.1.1簡介及安裝109
11.1.2使用Splash的API接口112
11.2 Mitmproxy抓包116
11.2.1簡介及安裝116
11.2.2用Mitmdump抓取愛奇藝視頻116
11.3 Aiohttp高並發抓取119
11.3.1簡介及使用119
11.3 .2 Aiohttp異步爬取小說排行榜123
11.4本章小結126
2章驗證碼識別128
12.1驗證碼的類型128
12.2 OCR技術129
12.3第三方平台131
12.4本章小結134
3章數據清洗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.3 BeautifulSoup數據清洗144
13.3.1 BeautifulSoup介紹與安裝144
13.3.2 BeautifulSoup的使用示例146
13.4本章小結149
4章文檔數據存儲150
14.1 CSV數據的寫入和讀取150
14.2 Excel數據的寫入和讀取151
14.3 Word數據的寫入和讀取154
14.4本章小結156
5章ORM框架158
15.1 SQLAlchemy介紹與安裝158
15.1 .1操作數據庫的方法158
15.1.2 SQLAlchemy框架介紹158
15.1.3 SQLAlchemy的安裝159
15.2連接數據庫160
15.3創建數據表162
15.4添加數據164
15.5更新數據165
15.6查詢數據166
15.7本章小結168
6章MongoDB數據庫操作169
16.1 MongoDB介紹169
16.2 MogoDB的安裝及使用170
16.2.1 MongoDB的安裝與配置170
16.2.2 MongoDB可視化工具172
16.2.3 PyMongo的安裝173
16.3連接MongoDB數據庫173
16.4添加文檔174
16.5更新文檔175
16.6查詢文檔176
16.7本章小結178
7章實戰:爬取51Job招聘信息180
17.1項目分析180
17.2獲取城市編號180
17.3獲取招聘職位總頁數182
17.4爬取每個職位信息184
17.5數據存儲188
17.6爬蟲配置文件190
17.7本章小結191
8章實戰:分佈式爬蟲——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
9章實戰: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.1 GUI庫及PyQt5的安裝與配置278
21.1.1 GUI庫278
21.1.2 PyQt5安裝及環境搭建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.2 Scrapy的運行機制318
22.1.3安裝Scrapy 319
22.2 Scrapy爬蟲開發示例320
22.3 Spider的編寫326
22.4 Items的編寫329
22.5 Item Pipeline的編寫330
22.5.1用MongoDB實現數據入庫330
22.5.2用SQLAlchemy實現數據入庫332
22.6 Selectors的編寫333
22.7文件下載336
22.8本章小結339
第23章Scrapy擴展開發341
23.1剖析Scrapy中間件341
23.1.1 SpiderMiddleware中間件342
23.1.2 DownloaderMiddleware中間件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.1 Scrapy_Splash實現原理363
23.4.2網站分析363
23.4.3項目設計與實現365
23.4.4開發Spider程序367
23.5實戰:Scrapy +Redis分佈式爬取貓眼排行榜369
23.5.1 Scrapy_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.1 Scrapyd部署爬蟲服務424
26.2.2 Gerapy爬蟲管理框架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