解析 Python 網絡爬蟲:核心技術、Scrapy 框架、分布式爬蟲

黑馬程序員

  • 出版商: 中國鐵道
  • 出版日期: 2018-08-01
  • 定價: $312
  • 售價: 8.5$265
  • 語言: 簡體中文
  • 頁數: 272
  • 裝訂: 平装
  • ISBN: 7113246788
  • ISBN-13: 9787113246785
  • 相關分類: Web-crawler 網路爬蟲
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

網絡爬蟲是一種按照一定的規則,自動請求萬維網網站並提取網絡數據的程序或腳本,它可以代替人力進行信息採集,能夠自動採集並高效地利用互聯網中的數據,在市場的應用需求中佔據著重要的位置。本書以Windows為主要平台,系統全面地講解了Python網絡爬蟲的相關知識。主要內容包括:初識爬蟲、爬蟲的實現原理和技術、網頁請求原理、爬取網頁數據、數據解析、並發下載、圖像識別與文字處理、存儲爬蟲數據、初識爬蟲框架Scrapy、Scrapy終端與核心組件、自動爬取網頁的爬蟲CrawSpider、Scrapy-Redis分佈式爬蟲。本書適合作為高等院校計算機相關專業程序設計課程教材,也可作為Python網絡爬蟲的培訓教材,以及廣大編程開發者的爬蟲入門級教材。

作者簡介

黑馬程序員
江蘇傳智播客教育科技股份有限公司(簡稱傳智播客)是一家專門致力於高素質軟件開發人才培養的高科技公司。傳智播客致力於為企業優選一流的人才的培訓理念,經過多年的教學探索及戰略佈局,已向著綜合型職業教育集團發展。目前,傳智播客旗下已涵蓋傳智播客IT教育培訓、黑馬程序員訓練營及博學谷三大子品牌。黑馬程序員是傳智播客旗下高端IT教育品牌。

目錄大綱

第1章
初識爬蟲1
1.1爬蟲產生背景1
1.2爬蟲的概念2
1.3爬蟲的用途2
1.4爬蟲的分類3
1.4.1通用爬蟲和聚焦爬蟲3
1.4.2累積式爬蟲和增量式爬蟲4
1.4. 3表層爬蟲和深層爬蟲4
小結5
習題5

第2章
爬蟲的實現原理和技術6
2.1爬蟲實現原理6
2.1.1通用爬蟲工作原理6
2.1.2聚焦爬蟲工作原理8
2.2爬蟲爬取網頁的詳細流程9
2.3通用爬蟲中網頁的分類10
2.4通用爬蟲相關網站文件10
2.4.1 robots.txt文件11
2.4.2 Sitemap.xml文件12
2.5防爬蟲應對策略12
2.6選擇Python做爬蟲的原因14
2.7案例使用八爪魚工具爬取
第一個網頁14
小結21
習題21

第3章
網頁請求原理23
3.1瀏覽網頁過程23
3.1.1統一資源定位符24
3.1.2計算機域名系統25
3.2 HTTP網絡請求原理25
3.2.1分析瀏覽器顯示完整網頁
的過程26
3.2.2客戶端HTTP請求格式26
3.2.3服務端HTTP響應格式30
3.3 HTTP抓包工具Fiddler 32
3.3.1 Fiddler工作原理32
3.3.2 Fiddler下載安裝32
3.3.3 Fiddler界面詳解33
3.3.4 Fiddler爬取HTTPS設置35
3.3.5使用Fiddler捕獲Chrome
的會話37
小結40
習題40

第4章
爬取網頁數據42
4.1 urllib庫概述42
4.2快速使用urllib爬取網頁43
4.2.1快速爬取一個網頁43
4.2.2分析urlopen方法44
4.2.3使用HTTPResponse對象45
4.2.4構造Request對象46
4.3使用urllib實現數據傳輸47
4.3.1 URL編碼轉換47
4.3.2處理GET請求48
4.3.3處理POST請求49
4.4添加特定Headers請求偽裝51
4.5代理服務器52
4.5.1簡單的自定義opener 52
4.5.2設置代理服務器53
4.6超時設置54
4.7常見的網絡異常55
4.7.1 URLError異常和捕獲55
4.7.2 HttpError異常和捕獲55
4.8更人性化的requests庫56
4.8.1 requests庫概述56
4.8.2 requests庫初體驗56
4.8.3發送請求58
4.8.4返迴響應58
4.9案例使用urllib庫爬取百度
貼吧59
小結61
習題61

第5章
數據解析63
5.1網頁數據和結構63
5.1.1網頁數據格式63
5.1.2網頁結構64
5.2數據解析技術64
5.3正則表達式65
5.4 XPath與lxml解析庫66
5.4.1 XPath概述66
5.4.2 XPath語法67
5.4.3 XPath開發工具70
5.4.4 lxml庫概述72
5.4.5 lxml庫的基本使用75
5.5 Beautiful Soup 77
5.5.1 Beautiful Soup概述77
5.5.2構建BeautifulSoup對象78
5.5.3通過操作方法進行解讀
搜索80
5.5.4通過CSS選擇器進行搜索83
5.6 JSONPath與json模塊85
5.6.1 JSON概述85
5.6.2 JSON與XML比較86
5.6.3 json模塊介紹87
5.6.4 json模塊基本應用88
5.6.5 JSONPath簡介90
5.6.6 JSONPath語法對比90
5.6.7案例獲取拉勾網城市
列表92
5.7案例解析騰訊社會招聘網站
的職位信息94
5.7.1明確爬蟲爬取目標95
5.7.2分析要解析的數據95
5.7.3使用urllib庫爬取社招網
數據96
5.7.4使用正則、lxml、bs4解析
職位數據98
5.7. 5將數據保存到文件中103
小結104
習題104

第6章
並發下載106
6.1多線程爬蟲流程分析106
6.2使用queue模塊實現多線程
爬蟲107
6.2.1 queue(隊列)模塊簡介107
6.2.2 Queue類概述109
6.3協程實現並發爬取110
6.3.1協程爬蟲的流程分析111
6.3.2第三方庫gevent 111
6.4案例三種技術採集和解析
數據對比112
6.4.1單線程實現112
6.4.2多線程實現114
6.4.3協程實現119
6.4.4性能分析122
小結123
習題123

第7章
爬取動態內容124
7.1動態網頁介紹124
7.2 selenium和PhantomJS概述125
7.3 selenium和PhantomJS安裝
配置126
7.4 selenium和PhantomJS的基本
應用128
7.4.1入門操作128
7.4.2定位UI元素133
7.4.3鼠標動作鏈135
7.4.4填充表單136
7.4.5彈窗處理137
7.4.6頁面切換138
7.4.7頁面前進和後退138
7.4.8獲取頁面Cookies 138
7.4.9頁面等待138
7.5案例模擬豆瓣網站登錄140
小結142
習題142

第8章
圖像識別與文字處理145
8.1 OCR技術概述145
8.2 Tesseract引擎的下載和安裝147
8.3 pytesseract和PIL庫概述148
8.3.1 pytesseract庫概述149
8.3.2 PIL庫概述149
8.4處理規範格式的文字150
8.4.1讀取圖像中格式規範的
文字151
8.4.2對圖片進行閾值過濾和
降噪處理151
8.4.3識別圖像的中文字符153
8.5處理驗證碼154
8.5.1驗證碼分類154
8.5.2簡單識別圖形驗證碼155
8.6案例識別圖形驗證碼156
小結157
習題157

第9章
存儲爬蟲數據159
9.1數據存儲概述159
9.2 MongoDB數據庫概述160
9.2.1 MongoDB的概念160
9.2.2 Windows平台安裝MongoDB數據庫160
9.2.3比較MongoDB和MySQL的術語163
9.3使用PyMongo庫存儲到
數據庫165
9.3.1 PyMongo的概念165
9.3.2 PyMongo的基本操作165
9.4案例存儲網站的電影信息169
9.4.1分析待爬取的網頁169
9.4.2通過urllib爬取全部頁面169
9.4.3通過bs4選取數據171
9.4.4通過MongoDB存儲
電影信息172
小結173
習題173

第10章
初識爬蟲框架Scrapy 175
10.1常見爬蟲框架介紹175
10.2 Scrapy框架的架構179
10.3 Scrapy框架的運作流程180
10.4安裝Scrapy框架181
10.4.1 Windows 7系統下的
安裝181
10.4.2 Linux(Ubuntu)系統下的
安裝184
10.4.3 Mac OS系統下的安裝185
10.5 Scrapy框架的基本操作186
10.5.1新建一個Scrapy項目186
10.5.2明確爬取目標187
10.5.3製作Spiders爬取網頁188
10.5.4永久性存儲數據193
10.5.5 Scrapy常用命令193
小結194
習題194

第11章Scrapy終端與核心組件196
11.1 Scrapy shell測試XPath
表達式196
11.1.1啟用Scrapy shell 196
11.1.2使用Scrapy shell 197
11.1.3 Scrapy shell使用示例198
11.2 Spiders爬取和提取結構化
數據200
11.3 Item Pipeline後期處理
數據201
11.3.1自定義Item Pipeline 201
11.3.2完善之前的案例
item寫入JSON文件202
11.4 Downloader Middlewares
防止反爬蟲203
11.5 Settings定制Scrapy
組件206
11.6案例鬥魚App爬蟲208
11.6.1使用Fiddler爬取手機
App的數據208
11.6.2分析JSON文件的內容210
11.6.3使用Scrapy爬取數據211
小結214
習題214

第12章
自動爬取網頁的爬蟲CrawlSpider 216
12.1初識爬蟲類CrawlSpider 216
12.2 CrawlSpider類的工作原理219
12.3通過Rule類決定爬取規則221
12.4通過LinkExtractor類提取
鏈接222
12.5案例使用CrawlSpider爬取
騰訊社會招聘網站223
小結228
習題228
 
第13章Scrapy-Redis分佈式
爬蟲230
13.1 Scrapy-Redis概述230
13.2 Scrapy-Redis的完整架構231
13.3 Scrapy-Redis的運作流程231
13.4 Scrapy-Redis的主要組件232
13.5搭建Scrapy-Redis開發環境233
13.5.1安裝Scrapy-Redis 233
13.5.2安裝和啟動Redis
數據庫234
13.5.3修改配置文件redis.conf 239
13.6分佈式的部署242
13.6.1分佈式策略242
13.6. 2測試Slave端遠程連接
Master端243
13.7 Scrapy-Redis的基本使用245
13.7.1創建Scrapy項目245
13.7.2明確爬取目標246
13.7.3製作Spider爬取網頁247
13.7.4執行分佈式爬蟲249
13.7.5使用多個管道存儲250
13.7.6處理Redis數據庫中的數據252