Python網(wǎng)絡(luò)爬蟲框架Scrapy從入門到精通
本書從Python主流框架Scrapy的簡介及網(wǎng)絡(luò)爬蟲知識(shí)講起,逐步深入到Scrapy進(jìn)階實(shí)戰(zhàn)。本書從實(shí)戰(zhàn)出發(fā),根據(jù)不同需求,有針對(duì)性地講解了靜態(tài)網(wǎng)頁、動(dòng)態(tài)網(wǎng)頁、App應(yīng)用是如何爬取所需數(shù)據(jù),以及Scrapy是如何部署分布式爬取,最后還介紹了用Scrapy + Pandas是如何進(jìn)行數(shù)據(jù)分析及數(shù)據(jù)展示,讓讀者不但可以系統(tǒng)地學(xué)習(xí)Scrapy編程的相關(guān)知識(shí),而且還能對(duì)Scrapy應(yīng)用開發(fā)有更為深入的理解。
本書分為12章,涵蓋的主要內(nèi)容有Scrapy框架簡介;Scrapy網(wǎng)絡(luò)爬蟲知識(shí)介紹;Scrapy開發(fā)環(huán)境的搭建;Scrapy架構(gòu)及編程;Scrapy進(jìn)階;實(shí)戰(zhàn)項(xiàng)目:Scrapy靜態(tài)網(wǎng)頁的爬;實(shí)戰(zhàn)項(xiàng)目:Scrapy動(dòng)態(tài)網(wǎng)頁的爬取;實(shí)戰(zhàn)項(xiàng)目:Scrapy爬取App應(yīng)用數(shù)據(jù);Scrapy的分布式部署與爬;分布式的實(shí)戰(zhàn)項(xiàng)目;用Selenium框架測(cè)試網(wǎng)站;用Scrapy + Pandas進(jìn)行數(shù)據(jù)分析。
本書內(nèi)容通俗易懂,實(shí)例典型,實(shí)用性強(qiáng),特別適合學(xué)習(xí)Python主流框架Scrapy的入門讀者和進(jìn)階讀者閱讀,也適合數(shù)據(jù)分析與挖掘技術(shù)的初學(xué)者閱讀,還適合相關(guān)培訓(xùn)機(jī)構(gòu)的師生閱讀。
張穎,“清穎設(shè)計(jì)”微信公眾號(hào)創(chuàng)始人,現(xiàn)任上海懂得網(wǎng)絡(luò)科技有限公司技術(shù)部主管,從事編程開發(fā)十余年,熟悉Python的方方面面,尤其擅長Python爬蟲和數(shù)據(jù)分析。
第1章 Scrapy框架簡介
1.1 Scrapy簡介 ·······2
1.2 關(guān)于本書:目標(biāo)和用途 ········2
1.3 進(jìn)行自動(dòng)化數(shù)據(jù)爬取的重要性 ·······3
1.4 掌握自動(dòng)化測(cè)試的重要性 ········3
1.5 合理規(guī)劃,開發(fā)高質(zhì)量的應(yīng)用 ·······4
1.6 網(wǎng)絡(luò)數(shù)據(jù)的采集法律與道德約束 ·······5
1.7 本章小結(jié) ·······5
第2章 Scrapy網(wǎng)絡(luò)爬蟲知識(shí)介紹
2.1 爬蟲的作用 ········7
2.2 爬蟲必備的前端知識(shí) ·······9
2.3 爬蟲經(jīng)常用的Python語法 ·······26
2.4 本章小結(jié) ·······44
第3章 Scrapy開發(fā)環(huán)境的搭建
3.1 安裝Python ·······47
3.2 數(shù)據(jù)庫的安裝 ········50
3.3 安裝Scrapy ········56
3.4 本章小結(jié) ·······60
第4章 Scrapy架構(gòu)及編程
4.1 Scrapy架構(gòu)及目錄源碼分析 ·······62
4.2 Scrapy項(xiàng)目的創(chuàng)建和管理 ·······67
4.3 PyCharm如何調(diào)試Scrapy ·······72
4.4 Scrapy的組件 ·······77
4.5 Scrapy的數(shù)據(jù)流 ·······78
4.6 數(shù)據(jù)存儲(chǔ) ·······78
4.7 Scrapy如何定義中間件 ·······80
4.8 Scrapy其他方法的使用 ·······82
4.9 本章小結(jié) ·······83
第5章 Scrapy進(jìn)階
5.1 理解Scrapy性能 ·······85
5.2 編寫Spider的邏輯 ·······93
5.3 Item和Pipeline ·······95
5.4 數(shù)據(jù)庫存儲(chǔ) ·······98
5.5 Scrapy集成隨機(jī)User-Agent和代理IP ·······100
5.6 突破反爬技術(shù) ·······102
5.7 圖片和文件下載 ·······103
5.8 如何部署爬蟲 ·······108
5.9 計(jì)劃定時(shí)爬取 ·······111
5.10 本章小結(jié) ·······112
第6章 實(shí)戰(zhàn)項(xiàng)目:Scrapy靜態(tài)網(wǎng)頁的爬取
6.1 采集需求及網(wǎng)頁分析 ·······114
6.2 數(shù)據(jù)表的設(shè)計(jì) ·······115
6.3 獲取和解析列表、詳情頁 ·······115
6.4 數(shù)據(jù)存儲(chǔ) ·······117
6.5 數(shù)據(jù)的導(dǎo)出和展示 ·······119
6.6 本章小結(jié) ·······121
第7章 實(shí)戰(zhàn)項(xiàng)目:Scrapy動(dòng)態(tài)網(wǎng)頁的爬取
7.1 采集需求及網(wǎng)頁分析 ·······123
7.2 Selenium的安裝和使用 ···············124
7.3 解析網(wǎng)頁及代碼的實(shí)現(xiàn) ················126
7.4 數(shù)據(jù)的存儲(chǔ) ·······128
7.5 數(shù)據(jù)的導(dǎo)出 ·······130
7.6 本章小結(jié) ·······133
第8章 實(shí)戰(zhàn)項(xiàng)目:Scrapy爬取App應(yīng)用數(shù)據(jù)
8.1 搭建開發(fā)環(huán)境 ·······135
8.2 移動(dòng)自動(dòng)化工具:Ui Automator Viewer ·······144
8.3 Appium Desktop工具的錄制功能 ·······147
8.4 App應(yīng)用數(shù)據(jù)抓取實(shí)戰(zhàn)項(xiàng)目 ·······150
8.5 本章小結(jié) ·······158
第9章 Scrapy的分布式部署與爬取
9.1 分布式系統(tǒng)概述及要點(diǎn) ·······160
9.2 使用Gerapy管理分布式爬蟲 ·······162
9.3 通過Scrapyd + ScrapydWeb簡單高效地部署和監(jiān)控分布式爬蟲項(xiàng)目 ·······168
9.4 使用Scrapy-Redis實(shí)現(xiàn)分布式爬蟲 ·······174
9.5 本章小結(jié) ·······195
第10章 分布式的實(shí)戰(zhàn)項(xiàng)目
10.1 搭建Redis服務(wù)器 ·······197
10.2 創(chuàng)建主項(xiàng)目及配置Scrapy-Redis ·······197
10.3 創(chuàng)建從項(xiàng)目及配置Scrapy-Redis ·······200
10.4 部署代理IP池及User-Agent ·······203
10.5 執(zhí)行程序 ·······205
10.6 本章小結(jié) ·······206
第11章 用Selenium框架測(cè)試網(wǎng)站
11.1 網(wǎng)站測(cè)試簡介 ·······208
11.2 用Scrapy + Selenium進(jìn)行前端自動(dòng)化測(cè)試 ·······208
11.3 本章小結(jié) ·······235
第12章 用Scrapy + Pandas進(jìn)行數(shù)據(jù)分析
12.1 Python數(shù)據(jù)分析概述 ·······237
12.2 NumPy簡介及操作 ·······238
12.3 Matplotlib簡介及操作 ·······247
12.4 Pandas簡介及操作 ·······256
12.5 實(shí)戰(zhàn)項(xiàng)目:Scrapy爬取網(wǎng)站并用Pandas進(jìn)行數(shù)據(jù)分析 ·······267
12.6 本章小結(jié) ·······284