中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >
Python爬蟲與反爬蟲開發從入門到精通

包郵 Python爬蟲與反爬蟲開發從入門到精通

作者:劉延林
出版社:北京大學出版社出版時間:2021-08-01
開本: 其他 頁數: 388
中 圖 價:¥69.3(7.0折) 定價  ¥99.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

Python爬蟲與反爬蟲開發從入門到精通 版權信息

  • ISBN:9787301322697
  • 條形碼:9787301322697 ; 978-7-301-32269-7
  • 裝幀:一般膠版紙
  • 冊數:暫無
  • 重量:暫無
  • 所屬分類:>

Python爬蟲與反爬蟲開發從入門到精通 本書特色

學爬蟲:知原理,抓數據,做分析,用自動化解放雙手 會反爬:懂框架,會部署,見招拆招,攻防兼備 在攻與防的對立統一中尋求爬蟲技術突破

Python爬蟲與反爬蟲開發從入門到精通 內容簡介

隨著網絡技術的迅速發展,如何有效地提取并利用信息,以及如何有效地防止信息被爬取,已成為一個巨大的挑戰。本書從零開始系統地介紹了Python網絡爬蟲與反爬蟲的開發與實戰技能,全書共分為4篇,具體內容安排如下。 篇:基礎篇(~3章)。系統地講解了Python爬蟲與反爬蟲開發環境的搭建、爬蟲與反爬蟲通用基礎知識、Python編程基礎。 第2篇:爬蟲篇(第4~8章)。這部分講解了網絡爬蟲的相關知識與技能,主要包括網絡爬蟲快速入門、XPath匹配網頁數據、re正則匹配數據、WebSocket數據抓取、Scrapy爬蟲框架應用與開發等。 第3篇:反爬蟲篇(第9~16章)。這部分講解了網絡反爬蟲的相關知識與技能,主要包括爬蟲與反爬蟲的區別與認識、反爬—Header信息校驗、反爬—IP、反爬—動態渲染頁面、反爬—文本混淆、反爬—特征識別、反爬—驗證碼識別、反爬—APP數據抓取等。 第4篇:實戰篇(7章)。本篇主要列舉了4個案例,綜合講解Python爬蟲與反爬蟲項目的實戰應用。 本書從零基礎開始講解,系統全面,案例豐富,注重實戰,既適合Python程序員和爬蟲愛好者閱讀學習,也可以作為廣大職業院校相關專業的教材或參考用書。

Python爬蟲與反爬蟲開發從入門到精通 目錄

目錄
Contents

第1篇 基礎篇
第1章 爬蟲與反爬蟲開發環境搭建 /2
1.1 Python 3環境搭建 /3
1.1.1 下載Python 3安裝包 /3
1.1.2 安裝Python /4
1.1.3 pip包管理工具 /6
1.2 PyCharm的安裝與基本使用 /7
1.2.1 安裝PyCharm /7
1.2.2 創建Python項目 /8
1.2.3 debug調試代碼 /12
1.2.4 創建venv虛擬環境 /14
1.3 Tesseract-OCR /16
1.3.1 下載 /16
1.3.2 安裝 /17
1.3.3 配置環境變量 /18
1.4 mitmproxy /18
1.4.1 下載 /19
1.4.2 安裝 /20
1.4.3 安裝SSL證書 /21
1.5 JDK 1.8 /22
1.5.1 下載JDK /22
1.5.2 安裝 /22
1.5.3 測試是否安裝成功 /23
本章小結 /24

第2章 爬蟲與反爬蟲通用基礎知識 /25
2.1 網頁基礎 /26
2.1.1 網頁的組成 /26
2.1.2 網頁的類型 /28
2.2 網絡傳輸協議 /28
2.2.1 認識HTTP /29
2.2.2 HTTPS /29
2.2.3 HTTP與HTTPS請求過程示例 /29
2.3 Session和Cookies /31
2.3.1 Cookie /31
2.3.2 Session /33
2.3.3 Session和Cookie的區別 /33
2.3.4 常見誤區 /33
2.4 Nginx服務器 /34
2.4.1 Nginx信號 /34
2.4.2 反向代理 /35
2.4.3 Nginx中實現反向代理 /35
2.5 代理IP /36
2.5.1 原理 /36
2.5.2 分類 /37
2.5.3 獲取途徑 /37
2.6 HTTP接口概念 /40
2.7 新手問答 /40
本章小結 /41

第3章 Python編程基礎 /42
3.1 Python的基礎語法 /43
3.1.1 **個Python程序 /43
3.1.2 運行程序 /43
3.1.3 注釋 /46
3.1.4 行與縮進 /46
3.1.5 多行語句 /47
3.1.6 import 與 from...import導入模塊 /48
3.1.7 變量 /48
3.2 基本數據類型 /49
3.2.1 Number /49
3.2.2 String /50
3.2.3 List /50
3.2.4 Tuple /52
3.2.5 Dictionary /52
3.2.6 Set /53
3.2.7 布爾類型 /54
3.3 流程控制 /55
3.3.1 條件控制 /55
3.3.2 循環 /56
3.3.3 range()函數 /58
3.3.4 break和continue語句 /58
3.3.5 pass /59
3.4 函數 /60
3.4.1 定義一個函數 /60
3.4.2 調用函數 /60
3.5 文件操作 /61
3.5.1 txt文件讀寫 /61
3.5.2 csv文件讀寫 /62
3.6 面向對象 /64
3.6.1 類 /64
3.6.2 類對象 /65
3.6.3 類方法 /66
3.6.4 繼承 /67
3.7 多線程 /68
3.7.1 threading /68
3.7.2 多線程裝飾器封裝 /69
3.8 新手實訓 /70
3.9 新手問答 /71
本章小結 /72

第2篇 爬蟲篇
第4章 網絡爬蟲快速入門 /74
4.1 爬蟲的基本結構及工作流程 /75
4.2 urllib網絡請求庫 /75
4.2.1 請求一個簡單的網頁 /75
4.2.2 設置請求超時 /78
4.2.3 使用data參數提交數據 /78
4.2.4 Request /79
4.3 requests網絡請求庫 /82
4.3.1 requests模塊的安裝 /82
4.3.2 請求**個網頁 /82
4.3.3 get和post請求 /84
4.3.4 參數提交 /86
4.4 urllib3網絡請求庫 /86
4.4.1 發起請求 /87
4.4.2 響應內容 /88
4.4.3 查詢參數 /88
4.4.4 表單數據 /89
4.4.5 提交JSON數據 /89
4.5 Postman接口測試工具 /90
4.5.1 請求接口 /90
4.5.2 常用功能介紹 /93
4.6 新手實訓 /95
4.7 新手問答 /95
本章小結 /96

第5章 XPath匹配網頁數據 /97
5.1 安裝XPath /98
5.2 XPath的基礎語法 /98
5.3 在Python中使用XPath匹配數據 /99
5.3.1 根據class屬性進行匹配 /100
5.3.2 根據id屬性進行匹配 /101
5.3.3 根據name屬性進行匹配 /102
5.4 XPath表達式技巧 /103
5.5 擴展補充知識點 /105
5.5.1 Selector /105
5.5.2 Beautiful Soup /106
5.6 新手實訓 /107
5.7 新手問答 /109
本章小結 /109

第6章 re正則匹配數據 /110
6.1 re.compile函數 /111
6.2 re.match函數 /111
6.3 re.search函數 /113
6.4 re.match與re.search的區別 /114
6.5 檢索和替換 /114
6.6 findall函數 /115
6.7 常見正則表達式寫法 /116
6.8 新手實訓 /117
6.9 新手問答 /119
本章小結 /120

第7章 WebSocket數據抓取 /121
7.1 WebSocket通信原理 /122
7.2 使用aioWebSocket獲取數據 /122
7.2.1 安裝AioWebSocket /123
7.2.2 分析WebSocket請求 /123
7.2.3 編寫代碼獲取數據 /126
7.3 新手實訓 /129
7.4 新手問答 /131
本章小結 /131

第8章 Scrapy爬蟲框架應用與開發 /132
8.1 Scrapy框架的基本架構 /133
8.1.1 Scrapy的基本組件 /133
8.1.2 工作原理 /133
8.2 安裝Scrapy /134
8.3 創建項目 /135
8.4 定義Item /135
8.5 編寫**個Spider /136
8.6 運行爬蟲 /137
8.7 提取Item /137
8.8 在Shell中嘗試Selector選擇器 /138
8.9 提取數據 /139
8.10 使用Item /140
8.11 Item Pipeline /141
8.12 將Item寫入JSON文件 /142
8.13 新手實訓 /143
8.14 新手問答 /146
本章小結 /146

第3篇 反爬蟲篇
第9章 爬蟲與反爬蟲 /148
9.1 爬蟲知識的回顧與總結 /149
9.1.1 爬蟲的爬取過程 /149
9.1.2 案例演示 /149
9.2 反爬蟲的概念與定義 /154
本章小結 /155

第10章 反爬—Header信息校驗 /156
10.1 User-Agent /157
10.1.1 如何應對User-Agent反爬 /157
10.1.2 User-Agent反爬原理 /161
10.2 Cookie校驗 /162
10.2.1 如何應對Cookie反爬 /162
10.2.2 Cookie反爬原理 /163
10.3 Referer校驗 /165
10.3.1 Referer的反爬原理 /165
10.3.2 應對方法 /165
10.4 簽名校驗 /166
10.4.1 簽名反爬原理 /166
10.4.2 應對方法 /166
10.5 新手實訓 /170
10.6 新手問答 /176
本章小結 /176

第11章 反爬—IP限制 /177
11.1 代理設置 /178
11.1.1 urllib代理設置 /178
11.1.2 requests代理設置 /179


11.2 代理池構建 /17911.2.1 獲取IP /180
11.2.2 驗證代理是否可用 /181
11.2.3 使用代理池 /182
11.3 搭建自己的代理服務器 /183
11.3.1 什么是ADSL /183
11.3.2 購買代理云主機 /183
11.3.3 測試撥號 /185
11.3.4 設置代理服務器 /188
11.3.5 動態獲取IP /190
11.3.6 使用Python實現撥號 /192
11.4 使用Nginx實現封禁IP /194
11.5 新手問答 /195
本章小結 /196

第12章 反爬—動態渲染頁面 /197
12.1 動態渲染案例介紹 /198
12.1.1 單擊事件 /198
12.1.2 異步加載數據 /199
12.1.3 焦點事件 /200
12.2 常見應對動態渲染頁面的解決辦法 /201
12.3 使用Selenium爬取動態渲染頁面 /201
12.3.1 安裝Selenium庫 /202
12.3.2 Selenium定位方法 /203
12.3.3 控制瀏覽器操作 /204
12.3.4 WebDriver常用方法 /206
12.3.5 其他常用方法 /207
12.3.6 鼠標鍵盤事件 /208
12.3.7 獲取斷言 /211
12.3.8 設置元素等待 /212
12.3.9 多表單切換 /214
12.3.10 下拉框選擇 /215
12.3.11 調用JavaScript代碼 /216
12.3.12 窗口截圖 /217
12.3.13 無頭模式 /217
12.4 獲取瀏覽器Network請求和響應 /218
12.4.1 Browsermob-Proxy /219
12.4.2 獲取接口返回數據 /220
12.4.3 二級代理 /222
12.5 新手實訓 /222
12.6 新手問答 /224
本章小結 /225

第13章 反爬—文本混淆 /226
13.1 圖片偽裝反爬 /227
13.1.1 飛常準航班動態信息 /227
13.1.2 分析網站 /228
13.1.3 應對方案 /230
13.1.4 代碼實現 /230
13.2 CSS偏移反爬 /231
13.2.1 去哪兒網 /231
13.2.2 分析網站 /232
13.2.3 代碼實現 /235
13.3 編碼映射反爬 /238
13.3.1 大眾點評網 /238
13.3.2 分析網站 /239
13.3.3 代碼實現 /240
13.4 字體反爬 /242
13.4.1 美團手機版網頁 /242
13.4.2 分析網站 /243
13.4.3 代碼實現 /247
13.5 新手實訓 /248
13.6 新手問答 /252
本章小結 /252

第14章 反爬—特征識別 /253
14.1 瀏覽器指紋 /254
14.1.1 瀏覽器指紋實現技術有哪些 /254
14.1.2 防止瀏覽器指紋檢測方法 /254
14.1.3 防客戶端追蹤措施 /255
14.2 WebDriver驅動識別 /255
14.2.1 WebDriver識別示例 /255
14.2.2 WebDriver識別原理 /257
14.2.3 如何繞過被識別 /259
14.3 使用mitmproxy /262
14.3.1 認識mitmproxy /262
14.3.2 工作原理 /263
14.3.3 使用mitmproxy繞過驅動檢測 /263
14.4 網頁精靈 /269
14.4.1 安裝網頁精靈 /270
14.4.2 網頁精靈的簡單使用 /271
14.5 新手實訓 /275
14.6 新手問答 /277
本章小結 /277

第15章 反爬—驗證碼識別 /278
15.1 普通圖形驗證碼 /279
15.1.1 識別圖形驗證碼的解決方案 /279
15.1.2 OCR識別圖形驗證碼 /279
15.1.3 采用第三方打碼平臺識別 /280
15.2 滑動驗證碼 /281
15.2.1 分析思路 /282
15.2.2 使用Selenium實現模擬淘寶登錄的拖動驗證 /282
15.3 滑動拼圖驗證碼 /285
15.3.1 分析思路 /285
15.3.2 使用代碼實現滑動 /285
15.3.3 運行測試 /291
15.4 新手實訓 /292
15.5 新手問答 /294
本章小結 /295

第16章 反爬—APP數據抓取 /296
16.1 APP的抓包分析 /297
16.1.1 Fiddler抓包工具 /297
16.1.2 Fiddler設置 /297
16.1.3 使用Fiddler抓包獵聘APP測試 /299
16.1.4 Charles抓包工具 /300
16.1.5 Charles設置 /301
16.1.6 Charles抓包 /304
16.1.7 Charles分析 /307
16.1.8 Charles重發 /309
16.2 Appium自動化 /310
16.2.1 安裝Appium /311
16.2.2 Android開發環境配置 /312
16.2.3 啟動APP /313
16.2.4 appPackage和appActivity參數獲取方法 /322
16.3 APK安裝包反編譯 /324
16.3.1 準備工作 /324
16.3.2 反編譯得到源碼 /324
16.4 APK反編譯知識補充 /327
16.5 新手實訓 /327
16.6 新手問答 /332
本章小結 /332

第4篇 實戰篇
第17章 項目實戰 /334
17.1 土地市場網——地塊公示 /335
17.1.1 分析網站 /336
17.1.2 代碼實現 /342
17.1.3 實例總結 /348
17.2 紐約工商數據采集 /348
17.2.1 分析網站 /348
17.2.2 編寫代碼爬取 /351
17.2.3 實例總結 /356
17.3 攜程旅行火車票票價數據采集 /356
17.3.1 分析網站 /358
17.3.2 編寫代碼爬取 /360
17.3.3 實例總結 /361
17.4 智聯招聘數據采集 /361
17.4.1 分析網站 /362
17.4.2 編寫代碼爬取 /365
17.4.3 實例總結 /367

附錄A 爬蟲法律法規 /368
附錄B 實驗環境的搭建方法及說明 /371
附錄C Python常見面試題精選 /375

展開全部

Python爬蟲與反爬蟲開發從入門到精通 節選

2.3 Session和Cookies 在瀏覽網站的過程中,我們經常會遇到需要登錄的情況,有些頁面需要登錄之后才能訪問,而 且登錄之后可以連續很多次訪問該網站,但是有的時候過一段時間就需要重新登錄。還有一些網站 在打開瀏覽器的時候就自動登錄了,而且很長時間都不會失效,這種情況是什么原因呢?因為這里 面涉及會話(Session)和Cookies 的相關知識,下面就來揭開它們的神秘面紗。 2.3.1 Cookie Cookie 實際上是一小段的文本信息,通過鍵值對格式(key-value)來表示。其原理是客戶端向 服務器發起請求,如果服務器需要記錄該用戶狀態,就在響應客戶端的時候向客戶端瀏覽器發送一 個Cookie,客戶端瀏覽器會把Cookie 保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址 32 Python 爬蟲與反爬蟲開發從入門到精通 連同該Cookie 一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。 所以這就是為什么我們在訪問某些網站的時候,輸入用戶名、密碼進行了登錄,幾天后再次打 開電腦訪問該網站時就會自動登錄。這是因為瀏覽器保存了我們的Cookie 到一個文件中。當我們 重新訪問頁面,它會自動讀取上次保存的Cookie 文件中的內容并且傳給了服務端。如果手動清除 了瀏覽器歷史訪問記錄,也會清除相關的Cookie 文件,當再次訪問頁面的時候,就需要重新登錄了。 Cookie 在使用的時候,是攜帶在客戶端瀏覽器向服務端發起請求的Header 里面,格式如下: Key=value Cookie 里面會包含多個參數,參數之間使用分號間隔,如圖2-5 所示。 圖2-5 飛常準Cookie 圖2-5 展示的是“飛常準”手機版的一個頁面,請求里面攜帶了Cookie 信息,至于如何查看 Cookie,將會在后面的章節中講到,這里讀者只需要理解Cookie 的基本概念即可。Cookie 中有幾 個比較重要的屬性,如表2-1 所示。 表2-1 Cookie 的基本屬性 屬性屬性介紹 Name=value 鍵值對,可以設置要保存的 Key/Value,注意這里的 NAME 不能和其他屬性項的名字一樣 Expires 過期時間,在設置的某個時間點后該 Cookie 就會失效 Domain 生成該 Cookie 的域名,如 domain="www.lyl.com" Path 指該Cookie 是在當前的哪個路徑下生成的,如 path=/wp-admin/ Secure 如果設置了這個屬性,那么只會在 SSH 連接時才會回傳該 Cookie 第2 章 爬蟲與反爬蟲通用基礎知識 33 2.3.2 Session Session 代表服務器與瀏覽器的一次會話過程,這個過程是連續的,也可以時斷時續。Session 是一種服務器端的機制,Session 對象用來存儲特定用戶會話所需的信息。Session 由服務端生成, 保存在服務器的內存、緩存、硬盤或數據庫中。 它的主要工作原理是:當用戶訪問到一個服務器,如果服務器啟用Session,服務器就要為該 用戶創建一個Session,在創建這個Session 的時候,服務器首先檢查這個用戶發來的請求里是否包 含了一個Session ID,如果包含了一個Session ID,則說明之前該用戶已經登錄過并為此用戶創建 過Session,那服務器就按照這個Session ID 在服務器的內存中查找(如果查找不到,就有可能為 它新創建一個),如果客戶端請求里不包含Session ID,則為該客戶端創建一個Session 并生成一 個與此Session 相關的Session ID。這個Session ID 是唯一的、不重復的、不容易找到規律的字符串, 它將在本次響應中被返回到客戶端保存,而保存這個Session ID 的正是Cookie,這樣在交互過程中 瀏覽器可以自動按照規則把這個標識發送給服務器。 2.3.3 Session和Cookie的區別 了解了Session 和Cookie 的基本原理,接下來再來淺談一下它們之間的區別。Session 是存儲 在服務器端的,Cookie 是存儲在客戶端的,所以Session 的安全性要高于Cookie。再者,我們獲取 的Session 里的信息是通過存放在會話Cookie 里的Session ID 獲取的,因為Session 是存放在服務 器里的,所以Session 里的東西不斷增加會加重服務器的負擔。因此,我們可以把一些重要的東西 放在Session 里,不太重要的放在客戶端Cookie 里。Cookie 分為兩大類,分別是會話Cookie 和持 久化Cookie,它們的生命周期和瀏覽器是一致的,瀏覽器關了,會話Cookie 也就消失了,而持久 化Cookie 會存儲在客戶端硬盤中。當瀏覽器關閉的時候會話Cookie 也會消失,所以我們的Session 也就消失了。Session 在什么情況下會丟失呢?就是在服務器關閉的時候,或者是Session 過期(默 認30 分鐘)了。 2.3.4 常見誤區 在談論會話機制的時候,常常會有這樣的誤解:“只要關閉瀏覽器,會話就消失了。”可以想 象一下銀行卡的例子,除非客戶主動銷卡,否則銀行絕對不會輕易銷卡,刪除客戶的資料信息。對 于會話機制來說也是一樣,除非程序通知服務器刪除一個會話,否則服務器會一直保留。 當我們關閉瀏覽器時,瀏覽器不會在關閉之前主動通知服務器它將會關閉,所以服務器根本就 不知道瀏覽器即將關閉。之所以會有“只要關閉瀏覽器,會話就消失了”這種錯覺,是因為大部分 會話機制都會使用會話Cookie 來保存會話ID 信息,而關閉瀏覽器之后Cookies 就消失了,再次連 接服務器時,也就無法找到原來的會話了。如果服務器設置的Cookies 保存到硬盤上,或者使用某 種手段改寫瀏覽器發出的HTTP 請求頭,把原來的Cookies 發送給服務器,再次打開瀏覽器,仍然 能夠找到原來的會話ID,依舊還是可以保持登錄狀態的。 34 Python 爬蟲與反爬蟲開發從入門到精通 而且正是由于關閉瀏覽器不會導致會話被刪除,這就需要服務器為會話Cookie 設置一個失效 時間,當距離客戶端上一次使用會話的時間超過這個失效時間時,服務器就可以認為客戶端已經停 止了活動,才會把會話刪除,以節省存儲空間。 2.4 Nginx服務器 Nginx 是一個高性能的HTTP 和反向代理Web 服務器,我們日常所見的大多數網站或APP 后 臺服務接口都有用到Nginx。當然除了Nginx,其他還有很多常見的Web 服務器,如Apache、 Tomcat、IIS 等。有興趣的讀者可以上網了解一下,這里不一一進行講解。在這里只是簡單地介紹 一下關于Nginx 的一些常見知識點和應用場景,目的是有利于讀者對后面將要學習的章節內容有一 些了解。 2.4.1 Nginx信號 通過信號可以來控制Nginx 的工作狀態,也可以理解為傳達命令。它可以在終端控制Nginx 的 啟動、停止、重載等。其語法格式如下: nginx -s 信號名稱 常用的信號名稱有以下幾種。 (1)stop:快速關閉Nginx 服務。 (2)reload:重新加載配置文件啟動Nginx。 (3)start:快速啟動Nginx。 (4)quit:正常流程關閉Nginx 服務。 如果我們需要停止Nginx 服務,可以在終端向Nginx 發送一個信號進行關閉,根據實際情況選 擇關閉名稱。 快速地關閉命令如下: nginx -s stop 反之,如果要通過正常流程關閉,則命令如下: nginx -s quit 當Nginx 的配置文件被更改或添加了新的配置內容時,它們不會立即生效,如果想要配置立即 生效,就需要將Nginx 關閉重啟或通過重新加載配置文件啟動的方式實現。假如我們希望Nginx 在 不影響當前任務執行的情況下重新加載配置,使用reload 信號即可,命令如下: nginx -s reload 第2 章 爬蟲與反爬蟲通用基礎知識 35 Nginx 在收到重新加載配置的信號之后,它會首先檢查配置文件的語法是否有效,并且嘗試應 用其中的配置,如果成功,Nginx 將會啟動一個新的進程進行工作,同時會發一個信號去關閉舊的 的工作進程。如果失敗,它則會回滾任務,并繼續使用舊的配置文件執行舊的工作任務。如果讀者 想了解Nginx 更多的相關的知識,可以前往Nginx 官方網站查閱。 2.4.2 反向代理 反向代理出現的作用是隱藏真實服務器的IP 地址等信息。其原理是客戶端在訪問網站獲取數 據的時候,發送的請求會先經過反向代理服務器,由反向代理服務器去選擇目標服務器獲取數據后, 再返回給客戶端。此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地 址,隱藏了真實的服務器IP 地址。 例如,這里有兩臺服務器,假如A 服務器是代理服務器,其IP 地址為192.168.1.1,B 服務器 上部署了網站真實的后臺服務,其IP 地址為192.168.1.2。未使用反向代理之前,按照正常的邏輯, 我們要訪問網站的服務器,直接請求192.168.1.2 地址就可以了,響應給我們的請求頭信息里面會 包含服務器B 的IP 地址。反之,如果使用反向代理,則我們請求的地址應該是服務器A,A 服務 器接到我們的請求之后,會去B 那兒獲取數據,并返回給我們,然而此時返回的響應請求頭信息 中顯示的IP 地址為A 的地址,同時也拿到了我們需要的數據。但是,我們并不能直接看到請求的 這個數據真實的來源是哪里。 可以通俗地理解,就跟我們委托別人幫買東西一樣,我們表達了需要什么東西并且把錢給他之 后,他就去買了,但是他將東西交給我們的時候,我們并不知道他是從哪個商鋪買的。反向代理的 原理也是如此,如圖2-6 所示。 圖2-6 反向代理原理 2.4.3 Nginx中實現反向代理 要使用Nginx 實現反向代理,只需要在反向代理服務器上的Nginx 配置文件中添加一項簡單的 配置即可,如下所示。 36 Python 爬蟲與反爬蟲開發從入門到精通 server { listen 80; server_name www.liuyanlin.cn; location/{ proxy_pass http://127.0.0.1:5000; index index.html; } } 通過配置重載Nginx 之后,在瀏覽器中訪問www.liuyanlin.cn 這個網站,將會跳轉到筆者本機 電腦運行的一個網站服務http://127.0.0.1:5000 上,至此就實現了一個簡單的反向代理過程。 2.5 代理IP 在2.4 節中,我們了解了Nginx 實現反向代理的原理及基本概念,接著趁熱打鐵再來了解一下 代理IP。代理IP 在我們后面章節所要學習的爬蟲中起著至關重要的作用。接下來將對代理的基本 原理和分類做一個簡單的講解。 2.5.1 原理 代理服務器的工作機制很像我們生活中常常提及的代理商,假設你的機器為A 機,你想獲得的 數據由B 機提供,代理服務器為C 機,那么具體的連接過程是這樣的:首先,你的A 機需要B 機的 數據,它就要與C 機建立連接,C 機接收到A 機的數據請求之后,與B 機建立連接,根據A 機發送 的請求去B 機上下載相應的數據到本地,再將此數據發送至A 機,完成代理任務。其原理如圖2-7 所示。 圖2-7 代理原理圖 第2 章 爬蟲與反爬蟲通用基礎知識 37 那么代理IP 就是指的代理服務器的IP 地址,通過IP 地址我們可以連接代理服務器或對其傳 輸數據等。

Python爬蟲與反爬蟲開發從入門到精通 作者簡介

劉延林,云鏡團隊創始人,擁有多年網絡爬蟲開發經驗,著有《Python網絡爬蟲開發從入門到精通》,擅長Python網絡爬蟲、Web、數據挖掘與分析、網絡安全、產品研發等領域。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 深圳市八百通智能技术有限公司官方网站 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 压装机-卧式轴承轮轴数控伺服压装机厂家[铭泽机械] | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 抓斗式清污机|螺杆式|卷扬式启闭机|底轴驱动钢坝|污水处理闸门-方源水利机械 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 稳尚教育加盟-打造高考志愿填报平台_新高考志愿填报加盟_学业生涯规划加盟 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 真空乳化机-灌装封尾机-首页-温州精灌 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 达利园物流科技集团-|