隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,如何有效地提取并利用信息,以及如何有效地防止信息被爬取,已成為一個巨大的挑戰(zhàn)。本書從零開始系統(tǒng)地介紹了Python網(wǎng)絡(luò)爬蟲與反爬蟲的開發(fā)與實戰(zhàn)技能,全書共分為4篇,具體內(nèi)容安排如下。
第1篇:基礎(chǔ)篇(第1~3章)。系統(tǒng)地講解了Python爬蟲與反爬蟲開發(fā)環(huán)境的搭建、爬蟲與反爬蟲通用基礎(chǔ)知識、Python編程基礎(chǔ)。
第2篇:爬蟲篇(第4~8章)。這部分講解了網(wǎng)絡(luò)爬蟲的相關(guān)知識與技能,主要包括網(wǎng)絡(luò)爬蟲快速入門、XPath匹配網(wǎng)頁數(shù)據(jù)、re正則匹配數(shù)據(jù)、WebSocket數(shù)據(jù)抓取、Scrapy爬蟲框架應(yīng)用與開發(fā)等。
第3篇:反爬蟲篇(第9~16章)。這部分講解了網(wǎng)絡(luò)反爬蟲的相關(guān)知識與技能,主要包括爬蟲與反爬蟲的區(qū)別與認(rèn)識、反爬—Header信息校驗、反爬—IP限制、反爬—動態(tài)渲染頁面、反爬—文本混淆、反爬—特征識別、反爬—驗證碼識別、反爬—APP數(shù)據(jù)抓取等。
第4篇:實戰(zhàn)篇(第17章)。本篇主要列舉了4個案例,綜合講解Python爬蟲與反爬蟲項目的實戰(zhàn)應(yīng)用。
本書從零基礎(chǔ)開始講解,系統(tǒng)全面,案例豐富,注重實戰(zhàn),既適合Python程序員和爬蟲愛好者閱讀學(xué)習(xí),也可以作為廣大職業(yè)院校相關(guān)專業(yè)的教材或參考用書。
劉延林,云鏡團(tuán)隊創(chuàng)始人,擁有多年網(wǎng)絡(luò)爬蟲開發(fā)經(jīng)驗,著有《Python網(wǎng)絡(luò)爬蟲開發(fā)從入門到精通》,擅長Python網(wǎng)絡(luò)爬蟲、Web、數(shù)據(jù)挖掘與分析、網(wǎng)絡(luò)安全、產(chǎn)品研發(fā)等領(lǐng)域。
第1篇 基礎(chǔ)篇
第1章 爬蟲與反爬蟲開發(fā)環(huán)境搭建 /2
1.1 Python 3環(huán)境搭建 /3
1.2 PyCharm的安裝與基本使用 /7
1.3 Tesseract-OCR /16
1.4 mitmproxy /18
1.5 JDK 1.8 /22
本章小結(jié) /24
第2章 爬蟲與反爬蟲通用基礎(chǔ)知識 /25
2.1 網(wǎng)頁基礎(chǔ) /26
2.2 網(wǎng)絡(luò)傳輸協(xié)議 /28
2.3 Session和Cookies /31
2.4 Nginx服務(wù)器 /34
2.5 代理IP /36
2.6 HTTP接口概念 /40
2.7 新手問答 /40
本章小結(jié) /41
第3章 Python編程基礎(chǔ) /42
3.1 Python的基礎(chǔ)語法 /43
3.2 基本數(shù)據(jù)類型 /49
3.3 流程控制 /55
3.4 函數(shù) /60
3.5 文件操作 /61
3.6 面向?qū)ο蟆?64
3.7 多線程 /68
3.8 新手實訓(xùn) /70
3.9 新手問答 /71
本章小結(jié) /72
第2篇 爬蟲篇
第4章 網(wǎng)絡(luò)爬蟲快速入門 /74
4.1 爬蟲的基本結(jié)構(gòu)及工作流程 /75
4.2 urllib網(wǎng)絡(luò)請求庫 /75
4.3 requests網(wǎng)絡(luò)請求庫 /82
4.4 urllib3網(wǎng)絡(luò)請求庫 /86
4.5 Postman接口測試工具 /90
4.6 新手實訓(xùn) /95
4.7 新手問答 /95
本章小結(jié) /96
第5章 XPath匹配網(wǎng)頁數(shù)據(jù) /97
5.1 安裝XPath /98
5.2 XPath的基礎(chǔ)語法 /98
5.3 在Python中使用XPath匹配數(shù)據(jù) /99
5.4 XPath表達(dá)式技巧 /103
5.5 擴展補充知識點 /105
5.6 新手實訓(xùn) /107
5.7 新手問答 /109
本章小結(jié) /109
第6章 re正則匹配數(shù)據(jù) /110
6.1 re.compile函數(shù) /111
6.2 re.match函數(shù) /111
6.3 re.search函數(shù) /113
6.4 re.match與re.search的區(qū)別 /114
6.5 檢索和替換 /114
6.6 findall函數(shù) /115
6.7 常見正則表達(dá)式寫法 /116
6.8 新手實訓(xùn) /117
6.9 新手問答 /119
本章小結(jié) /120
第7章 WebSocket數(shù)據(jù)抓取 /121
7.1 WebSocket通信原理 /122
7.2 使用aioWebSocket獲取數(shù)據(jù) /122
7.3 新手實訓(xùn) /129
7.4 新手問答 /131
本章小結(jié) /131
第8章 Scrapy爬蟲框架應(yīng)用與開發(fā) /132
8.1 Scrapy框架的基本架構(gòu) /133
8.2 安裝Scrapy /134
8.3 創(chuàng)建項目 /135
8.4 定義Item /135
8.5 編寫第一個Spider /136
8.6 運行爬蟲 /137
8.7 提取Item /137
8.8 在Shell中嘗試Selector選擇器 /138
8.9 提取數(shù)據(jù) /139
8.10 使用Item /140
8.11 Item Pipeline /141
8.12 將Item寫入JSON文件 /142
8.13 新手實訓(xùn) /143
8.14 新手問答 /146
本章小結(jié) /146
第3篇 反爬蟲篇
第9章 爬蟲與反爬蟲 /148
9.1 爬蟲知識的回顧與總結(jié) /149
9.2 反爬蟲的概念與定義 /154
本章小結(jié) /155
第10章 反爬—Header信息校驗 /156
10.1 User-Agent /157
10.2 Cookie校驗 /162
10.3 Referer校驗 /165
10.4 簽名校驗 /166
10.5 新手實訓(xùn) /170
10.6 新手問答 /176
本章小結(jié) /176
第11章 反爬—IP限制 /177
11.1 代理設(shè)置 /178
11.2 代理池構(gòu)建 /179
11.3 搭建自己的代理服務(wù)器 /183
11.4 使用Nginx實現(xiàn)封禁IP /194
11.5 新手問答 /195
本章小結(jié) /196
第12章 反爬—動態(tài)渲染頁面 /197
12.1 動態(tài)渲染案例介紹 /198
12.2 常見應(yīng)對動態(tài)渲染頁面的解決辦法 /201
12.3 使用Selenium爬取動態(tài)渲染頁面 /201
12.4 獲取瀏覽器Network請求和響應(yīng) /218
12.5 新手實訓(xùn) /222
12.6 新手問答 /224
本章小結(jié) /225
第13章 反爬—文本混淆 /226
13.1 圖片偽裝反爬 /227
13.2 CSS偏移反爬 /231
13.3 編碼映射反爬 /238
13.4 字體反爬 /242
13.5 新手實訓(xùn) /248
13.6 新手問答 /252
本章小結(jié) /252
第14章 反爬—特征識別 /253
14.1 瀏覽器指紋 /254
14.2 WebDriver驅(qū)動識別 /255
14.3 使用mitmproxy /262
14.4 網(wǎng)頁精靈 /269
14.5 新手實訓(xùn) /275
14.6 新手問答 /277
本章小結(jié) /277
第15章 反爬—驗證碼識別 /278
15.1 普通圖形驗證碼 /279
15.2 滑動驗證碼 /281
15.3 滑動拼圖驗證碼 /285
15.4 新手實訓(xùn) /292
15.5 新手問答 /294
本章小結(jié) /295
第16章 反爬—APP數(shù)據(jù)抓取 /296
16.1 APP的抓包分析 /297
16.2 Appium自動化 /310
16.3 APK安裝包反編譯 /324
16.4 APK反編譯知識補充 /327
16.5 新手實訓(xùn) /327
16.6 新手問答 /332
本章小結(jié) /332
第4篇 實戰(zhàn)篇
第17章 項目實戰(zhàn) /334
17.1 土地市場網(wǎng)——地塊公示 /335
17.2 紐約工商數(shù)據(jù)采集 /348
17.3 攜程旅行火車票票價數(shù)據(jù)采集 /356
17.4 智聯(lián)招聘數(shù)據(jù)采集 /361
附錄A 爬蟲法律法規(guī) /368
附錄B 實驗環(huán)境的搭建方法及說明 /371
附錄C Python常見面試題精選 /375