本書(shū)以大數(shù)據(jù)應(yīng)用方面常用的語(yǔ)言Python為基礎(chǔ),從網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)原理入手,逐步引領(lǐng)讀者進(jìn)入網(wǎng)絡(luò)爬蟲(chóng)的世界。在各類爬蟲(chóng)框架中,將Scrapy作為軸心,從多個(gè)維度揭開(kāi)爬蟲(chóng)技術(shù)的面紗。例如,爬取規(guī)則的制定技巧,設(shè)計(jì)高速爬蟲(chóng),如何讓爬蟲(chóng)更“聰明”地獲取數(shù)據(jù),將海量數(shù)據(jù)進(jìn)行分布式存儲(chǔ)的技術(shù),設(shè)計(jì)具有高隱匿性的爬蟲(chóng),大規(guī)模、高并發(fā)的分布式爬蟲(chóng)技術(shù)。
近二十年軟件開(kāi)發(fā)、項(xiàng)目管理、團(tuán)隊(duì)建設(shè)和管理經(jīng)驗(yàn)。致力于互聯(lián)網(wǎng)技術(shù)應(yīng)用與大數(shù)據(jù)應(yīng)用方面的研究與開(kāi)發(fā)工作。曾任多家軟件公司的高級(jí)軟件工程師、項(xiàng)目經(jīng)理、首席架構(gòu)師和技術(shù)總監(jiān)等職務(wù)。現(xiàn)任廣州市增增智能科技有限公司CEO,從事視覺(jué)智能、語(yǔ)音智能及IoT等技術(shù)的產(chǎn)品研發(fā)與企業(yè)經(jīng)營(yíng)方面的工作。
第1章 爬蟲(chóng)初步
1.1 爬蟲(chóng)與大數(shù)據(jù)
1.1.1 大數(shù)據(jù)架構(gòu)
1.1.2 爬蟲(chóng)的作用與地位
1.1.3 Python與爬蟲(chóng)
1.1.4 Python的網(wǎng)絡(luò)爬蟲(chóng)框架
1.1.5 蟲(chóng)術(shù)技術(shù)路線圖
1.2 實(shí)例:簡(jiǎn)單的爬蟲(chóng)
1.3 內(nèi)容分析進(jìn)階
1.3.1 選擇器
1.3.2 深入BeautifulSoup
1.3.3 元素的搜尋
1.3.4 亂碼與中文編碼
1.4 新聞供稿的爬取實(shí)例
1.5 小結(jié)
第2章 Scrapy基礎(chǔ)知識(shí)
2.1 Scrapy架構(gòu)
2.2 Scrapy快速入手
2.3 數(shù)據(jù)模型Item
2.4 蜘蛛—Spiders
2.5 管道—Item Pipeline
2.6 Scrapy的運(yùn)行與配置
2.7 新聞供稿爬蟲(chóng)的Scrapy實(shí)現(xiàn)
2.8 小結(jié)
第3章 Scrapy的工程管理
3.1 Scrapyd
3.2 scrapyd-client及部署
3.3 搭建爬蟲(chóng)服務(wù)器
第4章 中階蟲(chóng)術(shù)
4.1 蜘蛛的演化
4.1.1 蜘蛛的本質(zhì)—深入Spider
4.1.2 通用蜘蛛
4.1.3 蜘蛛中間件
4.2 爬蟲(chóng)系統(tǒng)的測(cè)試與調(diào)試
4.2.1 開(kāi)發(fā)期調(diào)試
4.2.2 蜘蛛的測(cè)試
4.2.3 蜘蛛的運(yùn)行期調(diào)試
4.2.4 調(diào)試內(nèi)存溢出
4.3 處理HTTP請(qǐng)求
4.3.1 HTTP請(qǐng)求
4.3.2 Scrapy的Request對(duì)象
4.3.3 表單處理
4.3.4 下載器中間件
4.4 處理HTTP響應(yīng)
4.4.1 HTTP響應(yīng)
4.4.2 Scrapy的響應(yīng)對(duì)象
4.4.3 深入選擇器
4.4.4 非結(jié)構(gòu)化數(shù)據(jù)的提取
4.4.5 黑夜中的眼睛
4.5 處理JavaScript
4.5.1 示例:電商產(chǎn)品爬蟲(chóng)
4.5.2 Selenium和PhantomJS
4.5.3 Scrapy與Splash
4.6 數(shù)據(jù)存儲(chǔ)與后處理
4.6.1 圖片的下載與存儲(chǔ)
4.6.2 示例:產(chǎn)品圖片采集
4.6.3 導(dǎo)出到數(shù)據(jù)文件
4.6.4 導(dǎo)出到數(shù)據(jù)庫(kù)
4.6.5 示例:基于阿里云的存儲(chǔ)后端
第5章 高階蟲(chóng)術(shù)
5.1 增量式爬網(wǎng)
5.1.1 推演路由
5.1.2 時(shí)機(jī)的重要性
5.1.3 去重處理
5.1.4 布隆過(guò)濾器
5.1.5 基于Redis的布隆過(guò)濾器
5.2 突破封印
5.2.1 封禁淺析
5.2.2 客戶端仿真
5.2.3 化身萬(wàn)千—蜘蛛世界的易容術(shù)
5.2.4 反跟蹤
5.2.5 繞開(kāi)蜜罐
5.3 蟲(chóng)海
5.3.1 分布式爬蟲(chóng)架構(gòu)
5.3.2 認(rèn)識(shí)scrapy-redis
5.3.3 示例:分布式電商爬蟲(chóng)
5.4 可視化爬蟲(chóng)
5.4.1 示例:某點(diǎn)評(píng)網(wǎng)爬蟲(chóng)
5.4.2 解讀Portia爬蟲(chóng)代碼
5.4.3 數(shù)據(jù)項(xiàng)加載器—Item Loaders
5.4.4 最后的工作