Python網絡爬蟲從入門到實踐

莊培傑

  • 出版商: 電子工業
  • 出版日期: 2019-07-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7121371057
  • ISBN-13: 9787121371059
  • 相關分類: Web-crawler 網路爬蟲
  • 立即出貨 (庫存 < 3)

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

商品描述

本書講解瞭如何使用Python編寫網絡爬蟲,涵蓋爬蟲的概念、Web基礎、Chrome、Charles和Packet Capture抓包、urllib、Requests請求庫、lxml、Beautiful Soup、正則表達式解析數據、CSV、Excel、MySQL、Redis、MongoDB保存數據、反爬蟲策略應對、爬蟲框架Scrapy的使用與部署,以及應用案例。本書結構清晰、內容精練,代碼示例典型實用,附帶實踐過程中遇到問題的解決方案,非常適合Python初學者和進階讀者閱讀。

作者簡介

莊培傑,CSDN博客專家,排名146,訪問量達1625W ,簡書程序員專欄優秀作者。從事編程開發10餘年,熟悉Python的方方面面,尤其擅長Python爬蟲和數據分析。現任思可教育投資開發(深圳)有限公司Python高級工程師工程師。 
 

目錄大綱

第1章Python爬蟲概念與Web基礎1 
1.1爬蟲概念1 
1.1.1什麼是爬蟲1 
1.1.2爬蟲使用場景的引入2 
1.1.3爬蟲的組成部分3 
1.1.4模擬請求3 
1.1.5數據解析4 
1.1.6數據保存5 
1.1.7爬蟲的學習路線5 
1.2 HTTP簡述6 
1.2.1簡述一次網絡請求過程6 
1.2.2 URI和URL 7 
1.2.3 HTTP請求報文8 
1.2.4 HTTP響應報文10 
1.3網頁的組成13 
1.3.1 HTML簡介13 
1.3.2 CSS選擇器簡介16 
1.3.3 JavaScript簡介17 
第2章Python爬蟲基本庫的使用18 
2.1 Chrome抓包詳解18
2.1.1 Controls 20 
2.1.2 Filter 21 
2.1.3 Request Table 21 
2.2 urllib庫詳解23 
2.2.1發送請求23 
2.2.2抓取二進製文件24 
2.2.3模擬GET和POST請求25 
2.2.4修改請求頭26 
2.2.5設置連接超時27 
2.2.6延遲提交數據27 
2.2.7設置代理27 
2.2.8 Cookie 28 
2.2.9 urllib.parse模塊29 
2.2.10 urllib.error異常處理模塊31 
2.2.11 urllib.robotparser模塊32 
2.3用lxml庫解析網頁節點34 
2.3.1安裝庫34 
2.3.2 XPath語法速成34 
2.4實戰:爬取小說《三國演義》 36 
第3章Python爬蟲抓包與數據解析41 
3.1抓包進階41 
3.1.1 HTTPS介紹42 
3.1.2 HTTPS的工作流程43 
3.1.3 Charles抓包43 
3.1.4 Packet Capture抓包49
3.2 Requests HTTP請求庫52 
3.2.1 Requests庫簡介53 
3.2.2 Requests HTTP基本請求53 
3.2.3 Requests請求常用設置54 
3.2.4 Requests處理返回結果54 
3.2.5 Requests處理Cookie 55 
3.2.6 Requests重定向與請求歷史55 
3.2.7 Requests錯誤與異常處理55 
3.2.8 Requests Session會話對象55 
3.2.9 Requests SSL證書驗證56 
3.3實戰:爬取微信文章中的圖片、音頻和視頻56 
3.3.1爬取標題56 
3.3.2爬取圖片57 
3.3.3爬取音頻58 
3.3.4爬取視頻60 
3.3.5代碼整理64 
3.4 Beautiful Soup解析庫67 
3.4.1 Beautiful Soup簡介67 
3.4.2 Beautiful Soup對象實例化67 
3.4.3 Beautiful Soup的四大對象68 
3.4.4 Beautiful Soup的各種節點69 
3.4.5 Beautiful Soup文檔樹搜索69
3.4.6 Beautiful Soup使用CSS選擇器70 
3.5實戰:爬取壁紙站點的壁紙70 
3.6正則表達式74 
3.6.1 re模塊74 
3.6.2正則規則詳解75 
3.6.3正則練習77 
3.7實戰:爬取市級編碼列表79 
3.7.1獲取所有市級的跳轉鏈接列表80 
3.7.2解析表格獲得所有市級天氣鏈接81 
3.7.3提取市級編碼82 
3.7.4整合調整代碼83 
第4章用CSV和Excel存儲數據85 
4.1用CSV文件存儲數據85 
4.1.1 CSV寫入86 
4.1.2 CSV讀取87 
4.2實戰:爬取星座運勢88 
4.3用Excel文件存儲數據89 
4.3.1 Excel寫入89 
4.3.2 Excel讀取90 
4.4實戰:爬取某音樂平台排行榜91 
第5章用數據庫存儲數據99 
5.1 MySQL數據庫99 
5.1.1安裝MySQL 100 
5.1.2在Windows環境下安裝MySQL 100
5.1.3在Windows環境下配置MYSQL_HOME環境變量101 
5.1.4在Windows環境下設置MySQL登錄密碼101 
5.1.5在Windows環境下啟動或關閉MySQL服務102 
5.1.6 Mac環境103 
5.1.7 Ubuntu環境103 
5.1 .8 MySQL的基本操作104 
5.1.9 MySQL數據庫語法速成106 
5.1.10 Python連接MySQL數據庫110 
5.1.11 MySQL特殊符號和表情問題114 
5.1.12實戰:抓取某技術網站數據115 
5.2數據庫可視化工具DataGrip 122 
5.2.1建立數據庫關聯122 
5.2.2編寫SQL語句123 
5.2.3常見問題:連接遠程主機124 
5.3 Redis數據庫125 
5.3.1安裝Redis 126 
5.3.2 redis-py庫的安裝130 
5.3.3 redis- py基本操作示例130 
5.3.4實戰:爬取視頻彈幕並保存到Redis 134 
5.4 MongoDB數據庫137 
5.4.1安裝MongoDB 137 
5.4.2安裝PyMongo庫140
5.4.3 PyMongo基本操作示例140 
5.4.4實戰:爬取某電商網站關鍵字搜索結果並保存到MongoDB 144 
第6章Python應對反爬蟲策略148 
6.1反爬蟲概述148 
6.1.1為什麼會出現反爬蟲149 
6.1.2常見的爬蟲與反爬蟲大戰149 
6.2反爬蟲策略150 
6.2.1 User-Agent限制150 
6.2.2 302重定向151 
6.2.3 IP限制151 
6.2.4什麼是網絡代理151 
6.2.5如何獲取代理IP 151 
6.2.6 ADSL撥號代理152 
6.2.7 Squid配置代理緩存服務器156 
6.2.8 TinyProxy配置代理緩存服務器158 
6.2.9 Cookie限制159 
6.3 JavaScript反爬蟲策略159 
6.3.1 Ajax動態加載數據159 
6.3 .2實戰:爬取某素材網內容分析159 
6.3.3數據請求分析160 
6.3.4編寫代碼163 
6.4 Selenium模擬瀏覽器操作166 
6.4.1 Selenium簡介166
6.4.2安裝Selenium 167 
6.4.3 Selenium常用函數168 
6.5實戰:爬取某網站的特定圖172 
6.6 PhantomJS 175 
6.6.1在Windows上安裝PhantomJS 175 
6.6.2在Mac上安裝PhantomJS 175 
6.6.3在Ubuntu上安裝PhantomJS 176 
6.6.4關於PhantomJS的重要說明176 
6.7常見驗證碼策略176 
6.7.1圖片驗證碼177 
6.7.2實戰:實現圖片驗證碼自動登錄178 
6.7.3實戰:實現滑動驗證碼自動登錄185 
第7章Python爬蟲框架Scrapy(上) 196 
7.1 Scrapy框架簡介與安裝197 
7.1.1 Scrapy相關信息197 
7.1.2 Scrapy的安裝197 
7.2實戰:爬取某網站每日壁紙199 
7.2.1抓取目標分析199 
7.2.2創建爬蟲腳本201 
7.2.3編寫爬蟲腳本202 
7.2.4運行爬蟲腳本203 
7.2.5解析數據203 
7.3 Scrapy架構簡介204
7.3.1 Scrapy架構圖204 
7.3.2各個模塊間的協作流程205 
7.3.3協作流程擬人化對話版206 
7.4 Spider詳解207 
7.4.1 Spider的主要屬性和函數207 
7.4.2 Spider運行流程207 
7.5 Request類和Response類209 
7.5.1 Request詳解209 
7.5.2 Response類常用參數、方法與子類210 
7.5.3選擇器211 
7.5.4 Scrapy Shell 212 
7.6 Item詳解213 
7.7 Item Pipeline詳解213 
7.7.1自定義Item Pipeline類213 
7.7.2啟用Item Pipeline 214 
7.8實戰:完善爬取每日壁紙的腳本214 
7.8.1定義BingItem 215 
7.8.2使用ImagesPipeline 215 
7.8.3修改Spider代碼216 
7.8.4運行爬蟲腳本216 
7.9設置請求頭217 
7.9.1構造Request時傳入217 
7.9.2修改settings.py文件217
7.9.3為爬蟲添加custom_settings字段218 
7.10下載中間件詳解218 
7.10.1自定義Downloader Middleware類218 
7.10.2啟用自定義的代理下載中間件219 
7.11實戰:爬取某站點繪畫頻道的圖片219 
7.11. 1分析爬取的站點219 
7.11.2新建項目與明確爬取目標221 
7.11.3創建爬蟲爬取網頁221 
7.11.4設置代理223 
7.11.5解析數據223 
7.11.6存儲數據224 
7.11.7完善代碼226 
第8章Python爬蟲框架Scrapy(下) 228 
8.1 Scrapy對接Selenium 228 
8.1.1如何對接228 
8.1.2對接示例:爬取某網站首頁文章229 
8.2實戰:用Scrapy實現一個簡單的代理池232 
8.2. 1代理池的設計232 
8.2.2創建項目232 
8.2.3編寫獲取IP的爬蟲233 
8.2.4編寫檢測IP的爬蟲238 
8.2.5編寫調度程序240 
8.2.6編寫獲取代理IP的接口241
8.2.7使用代理243 
8.3用Scrapyrt調度Scrapy 243 
8.3.1相關文檔與安裝Scrapyrt 243 
8.3.2 Scrapyrt GET請求相關參數244 
8.3.3 Scrapyrt POST請求相關參數246 
8.4用Docker部署Scrapy 246 
8.4.1 Docker簡介246 
8.4.2下載並安裝Docker 247 
8.4.3創建Dockerfile 249 
8.4.4構建Docker鏡像250 
8.4.5把生成的Docker鏡像推送到Docker Hub 251 
8.4.6在雲服務器上運行Docker鏡像253 
第9章數據分析案例:Python崗位行情254 
9.1數據爬取254 
9.2 NumPy庫和pandas庫258 
9.2.1 ndarray數組259 
9.2.2 ndarray數組的常用操作260 
9.2.3 pandas庫263 
9.3用Matplotlib實現數據可視化268 
9.3.1 Matplotlib中文亂碼問題269 
9.3.2 Matplotlib繪製顯示不全270
9.3.3用Matplotlib生成圖表並進行分析271 
9.4用Wordcloud庫進行詞云繪製275 
9.4.1 Wordcloud簡介275 
9.4.2 Wordcloud構造函數與常用方法276 
9.4.3詞云繪製277 
9.5小結280 
第10章數據分析案例:某婚戀網站交友情況分析281 
10.1數據爬取281 
10.2安裝Jupyter Notebook 287 
10.3安裝pyecharts 288 
10.4數據分析289 
10.4.1讀取CSV文件裡的數據289 
10.4.2分析身高290 
10.4.3分析學歷292 
10.4.4分析年齡292 
10.4.5分析城市294 
10.4.6分析交友宣言294 
10.5小結296