從零開始學Scrapy網絡爬蟲:視頻教學版

張濤 編著

  • 出版商: 機械工業
  • 出版日期: 2019-09-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • ISBN: 7111634748
  • ISBN-13: 9787111634744
  • 相關分類: Web-crawler 網路爬蟲
  • 下單後立即進貨 (約4週~6週)

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

商品描述

  本書從零開始,循序漸進地介紹了目前最流行的網絡爬蟲框架Scrapy。即使你沒有任何編程基礎,閱讀本書也不會有壓力,因為書中有針對性地介紹了Python編程技術。另外,本書在講解過程中以案例為導向,通過對案例的不斷迭代、優化,讓讀者加深對知識的理解,並通過14個項目案例,提高讀者解決實際問題的能力。
  本書共13章。其中,第1~4章為基礎篇,介紹了Python基礎、網絡爬蟲基礎、Scrapy框架及基本的爬蟲功能。第5~10章為進階篇,介紹瞭如何將爬蟲數據存儲於MySQL、MongoDB和Redis數據庫中;如何實現異步AJAX數據的爬取;如何使用Selenium和Splash實現動態網站的爬取;如何實現模擬登錄功能;如何突破反爬蟲技術,以及如何實現文件和圖片的下載。第11~13章為高級篇,介紹了使用Scrapy-Redis實現分佈式爬蟲;使用Scrapyd和Docker部署分佈式爬蟲;使用Gerapy管理分佈式爬蟲,並實現了一個搶票軟件的綜合項目。
  本書適合爬蟲初學者、愛好者及高校相關專業的學生閱讀,也適合數據爬蟲工程師作為參考讀物,同時還適合各大院校和培訓機構作為教材使用。

目錄大綱

前言
第1篇基礎篇
第1章Python基礎2
1.1 Python簡介2
1.1.1 Python簡史2
1.1.2搭建Python環境3
1.1.3安裝PyCharm集成開發環境6
1.2 Python基本語法7
1.2.1基本數據類型和運算7
1.2.2運算符和表達式8
1.2.3條件判斷語句9
1.2.4循環語句10
1.2.5字符串12
1.3 Python內置數據結構14
1.3.1列表15
1.3.2字典16
1.3.3元組17
1.3.4遍歷對象集合17
1.4 Python模塊化設計18
1.4.1函數18
1.4.2迭代器(iterator) 20
1.4.3生成器(Generator) 20
1.4.4類和對象22
1.4.5文件與異常23
1.5本章小結25
第2章網絡爬蟲基礎26
2.1 HTTP基本原理26
2.1. 1 URL介紹27
2.1.2 HTTP和HTTPS協議27
2.1.3 HTTP請求(Request) 27
2.1.4 HTTP響應(Response) 30
2.2網頁基礎32
2.2.1 HTML文檔33
2.2.2網頁的結構33
2.2.3節點樹及節點之間的關係34
2.3使用XPath提取網頁信息36
2.3.1 XPath介紹36
2.3.2 XPath常用路徑表達式36
2.3.3 XPath帶謂語的路徑表達式39
2.4本章小結40
第3章Scrapy框架介紹41
3.1網絡爬蟲原理41
3.1.1爬蟲執行的流程41
3.2 Scrapy框架結構及執行流程42
3.2.1 Scrapy框架結構42
3.2.2 Scrapy執行流程44
3.3 Scrapy安裝44
3.3.1使用pip安裝Scrapy 44
3.3.2常見安裝錯誤45
3.3.3驗證安裝46
3.4第一個網絡爬蟲46
3.4.1需求分析46
3.4.2創建項目47
3.4.3分析頁面48
3.4.4實現Spider爬蟲功能49
3.4.5運行爬蟲50
3.4.6常見問題51
3.5本章小結52
第4章Scrapy網絡爬蟲基礎53
4.1使用Spider提取數據53
4.1.1 Spider組件介紹53
4.1.2重寫start_requests()方法55
4.1.3 Request對象57
4.1.4使用選擇器提取數據58
4.1.5 Response對象與XPath 59
4.1.6 Response對象與CSS 61
4.1.7進一步了解Response對象62
4.1.8多頁數據的爬取63
4.2使用Item封裝數據64
4.2.1定義Item和Field 65
4.2.2使用ItemLoader填充容器66
4.3使用Pipeline處理數據69
4.3.1 Item Pipeline介紹70
4.3.2編寫自己的Item Pipeline 70
4.3.3啟用Item Pipeline 71
4.3.4多個Item Pipeline 71
4.3.5保存為其他類型文件72
4.4項目案例:爬取鏈家網二手房信息75
4.4.1項目需求75
4.4.2技術分析76
4.4.3代碼實現及解析77
4.5本章小結85
第2篇進階篇
第5章數據庫存儲88
5.1 MySQL數據庫88
5.1.1關係型數據庫概述88
5.1.2下載和安裝MySQL數據庫88
5.1.3數據庫管理工具Navicat 92
5.1.4 Python訪問MySQL數據庫94
5.1.5項目案例97
5.2 MongoDB數據庫100
5.2 .1 NoSQL概述100
5.2.2 MongoDB介紹100
5.2.3 MongoDB的下載和安裝101
5.2.4 Python訪問MongoDB數據庫102
5.2.5項目案例108
5.3 Redis數據庫111
5.3.1 Redis的下載和安裝111
5.3.2 Python訪問Redis 113
5.3.3項目案例118
5.4本章小結121
第6章JavaScript與AJAX數據爬取122
6.1 JavaScript簡介122
6.2項目案例:爬取QQ音樂榜單歌曲122
6.2.1項目需求122
6.2.2技術分析123
6.2.3代碼實現及解析126
6.2.4更常見的動態網頁128
6.3 AJAX簡介129
6.4項目案例:爬取豆瓣電影信息130
6.4.1項目需求130
6.4.2技術分析130
6.4.3代碼實現及解析133
6.5本章小結135
第7章動態渲染頁面的爬取136
7.1 Selenium實現動態頁面爬取136
7.1.1 Selenium安裝136
7.1.2 Selenium簡單實現137
7.1.3 Selenium語法138
7.2項目案例:爬取今日頭條熱點新聞145
7.2.1項目需求145
7.2.2技術分析145
7.2.3代碼實現及解析147
7.3 Splash實現動態頁面爬取151
7.3.1 Splash介紹151
7.3.2 Splash環境搭建152
7.3.3 Splash模塊介紹156
7.4項目案例:爬取一號店中的iPhone手機信息162
7.4.1項目需求162
7.4.2技術分析163
7.4.3代碼實現及解析165
7.5本章小結168
第8章模擬登錄169
8.1模擬登錄解析169
8.1.1登錄過程解析169
8.1.2模擬登錄的實現171
8.2驗證碼識別174
8.2.1使用OCR識別驗證碼174
8.2.2處理複雜驗證碼176
8.2.3五花八門的驗證碼177
8.3 Cookie自動登錄177
8.3.1 Cookie介紹178
8.3.2獲取Cookie的庫—browsercookie 179
8.4項目案例:爬取起點中文網某用戶的書架信息180
8.4.1項目需求180
8.4.2技術分析180
8.4.3代碼實現及解析182
8.5本章小結184
第9章突破反爬蟲技術185
9.1反爬蟲技術及突破措施185
9.2偽裝成不同的瀏覽器187
9.2. 1 UserAgentMiddleware中間件介紹187
9.2.2實現偽裝成隨機瀏覽器188
9.2.3更簡單的方法191
9.3使用HTTP代理服務器192
9.3.1 HTTP代理服務器192
9.3.2獲取免費代理193
9.3.3實現隨機代理199
9.4本章小結202
第10章文件和圖片下載203
10.1文件下載203
10.1.1 FilesPipeline執行流程203
10.2項目案例:爬取seaborn案例源文件204
10.2.1項目需求204
10.2.2技術分析206
10.2.3代碼實現及解析206
10.2.4更多功能211
10.3圖片下載212
10.4項目案例:爬取攝圖網圖片213
10.4.1項目需求213
10.4.2技術分析215
10.4.3代碼實現及解析215
10.5本章小結221
第3篇高級篇
第11章Scrapy-Redis實現分佈式爬蟲224
11.1分佈式爬蟲原理224
11.2 Scrapy-Redis實現分佈式爬蟲分析225
11.2.1實現分佈式爬蟲思路225
11.2.2 Scrapy-Redis代碼解析226
11.2.3分佈式爬蟲功能配置231
11.3項目案例:分佈式爬蟲爬取攝圖網圖片233
11.3.1技術分析233
11.3.2代碼實現及解析234
11.4本章小結237
第12章Scrapyd部署分佈式爬蟲238
12.1使用Scrapyd部署分佈式爬蟲238
12.1.1 Scrapyd的安裝及運行238
12.1.2 Scrapyd功能介紹241
12.2使用Scrapyd-Client批量部署244
12.3使用Docker部署分佈式爬蟲248
12.4使用Gerapy管理分佈式爬蟲253
12.5本章小結258
第13章綜合項目:搶票軟件的實現259
13.1項目需求259
13.2技術分析262
13.3項目實現及解析263
13.3.1搭建Scrapy項目框架263
13.3.2實現獲取站點信息的爬蟲264
13.3.3實現站點處理類266
13.3.4實現購票類267
13.3.5實現購票功能280
13.3.6運行項目282
13.3.7優化項目282
13.4本章小結283