本書為國(guó)家職業(yè)教育大數(shù)據(jù)技術(shù)專業(yè)教學(xué)資源庫(kù)配套教材,也是高等職業(yè)教育計(jì)算機(jī)類課程新形態(tài)一體化教材。 本書選擇Python 3作為編程環(huán)境,系統(tǒng)講述編寫爬蟲所需要的各種技術(shù)。包括HTTP的原理、urllib和request網(wǎng)絡(luò)請(qǐng)求庫(kù)的使用、正則表達(dá)式、XPath等數(shù)據(jù)提取規(guī)則的使用和爬蟲框架Scrapy的使用,并后通過(guò)一個(gè)項(xiàng)目招聘分析監(jiān)控系統(tǒng)數(shù)據(jù)采集系統(tǒng)將以上技術(shù)綜合運(yùn)用起來(lái)。 本書配套有微課視頻、教學(xué)設(shè)計(jì)、授課用PPT等數(shù)字化教學(xué)資源。與本書配套的數(shù)字課程數(shù)據(jù)采集與預(yù)處理已在智慧職教平臺(tái)(www.icve.com.cn)上線,學(xué)習(xí)者可以登錄平臺(tái)進(jìn)行在線開放課程的學(xué)習(xí),授課教師可以調(diào)用本課程構(gòu)建符合自身教學(xué)特色的SPOC課程,詳見智慧職教服務(wù)指南。讀者可登錄平臺(tái)進(jìn)行資源的學(xué)習(xí)及獲取,也可發(fā)郵件至編輯郵箱1548103297@qq.com獲取相關(guān)資源。 本書緊跟信息社會(huì)發(fā)展動(dòng)態(tài),內(nèi)容新穎、結(jié)構(gòu)清晰,具有很強(qiáng)的趣味性和實(shí)用性。本書可作為高等職業(yè)院校大數(shù)據(jù)技術(shù)專業(yè)及其他相關(guān)專業(yè)的教材,也可作為大數(shù)據(jù)技術(shù)愛好者的自學(xué)用書。
第1章 網(wǎng)絡(luò)爬蟲概述
1.1 什么是網(wǎng)絡(luò)爬蟲
1.1.1 網(wǎng)絡(luò)爬蟲的應(yīng)用領(lǐng)域
1.1.2 網(wǎng)絡(luò)爬蟲的作用
1.2 網(wǎng)絡(luò)爬蟲原理
1.2.1 網(wǎng)絡(luò)爬蟲的基本流程
1.2.2 網(wǎng)絡(luò)爬蟲的數(shù)據(jù)提取方法
1.3 反爬蟲
1.3.1 反爬蟲的手段
1.3.2 破解反爬蟲的思路
1.4 開發(fā)網(wǎng)絡(luò)爬蟲常用的庫(kù)
1.4.1 Python開發(fā)網(wǎng)絡(luò)爬蟲的優(yōu)勢(shì)
1.4.2 網(wǎng)絡(luò)請(qǐng)求庫(kù)
1.4.3 數(shù)據(jù)提取庫(kù)
1.4.4 常用網(wǎng)絡(luò)爬蟲框架
第2章 超文本傳送協(xié)議(HTTP)分析
2.1 HTTP原理
2.1.1 HTTP簡(jiǎn)介
2.1.2 HTTP的主要特點(diǎn)
2.1.3 統(tǒng)一資源標(biāo)識(shí)符(URI)
2.1.4 請(qǐng)求數(shù)據(jù)包
2.1.5 響應(yīng)數(shù)據(jù)包
2.2 Chrome瀏覽器開發(fā)者工具使用
2.2.1 打開開發(fā)者工具
2.2.2 使用Elements面板分析HTML
2.2.3 使用Network面板分析網(wǎng)絡(luò)請(qǐng)求
2.2.4 使用Console面板
第3章 uurllib庫(kù)使用
3.1 獲取網(wǎng)頁(yè)內(nèi)容
3.1.1 使用urllib庫(kù)獲取網(wǎng)頁(yè)內(nèi)容
3.1.2 urlopen參數(shù)
3.1.3 Request對(duì)象
3.2 發(fā)送get請(qǐng)求
3.2.1 get請(qǐng)求的特點(diǎn)
3.2.2 請(qǐng)求參數(shù)設(shè)置
3.3 發(fā)送post請(qǐng)求
3.3.1 post請(qǐng)求的特點(diǎn)
3.3.2 post請(qǐng)求實(shí)例
3.4 修改useragent
3.4.1 使用fake-useragent庫(kù)
3.4.2 設(shè)置useragent
3.5 使用代理
3.5.1 代理介紹
3.5.2 使用代理服務(wù)器
3.5.3 創(chuàng)建打開器
3.6 使用cookie
3.6.1 cookie和session
3.6.2 使用cookielib
3.6.3 獲取登錄后的cookie
3.7 顯示調(diào)試信息
第4章 Requests庫(kù)的使用
4.1 Requests庫(kù)
4.1.1 Requests庫(kù)介紹
4.1.2 Requests庫(kù)安裝
4.2 Requests庫(kù)基本使用
4.2.1 發(fā)送請(qǐng)求
4.2.2 傳遞URL參數(shù)
4.2.3 響應(yīng)內(nèi)容
4.2.4 定制請(qǐng)求頭
4.2.5 JSON響應(yīng)內(nèi)容
4.3 Requests庫(kù)高級(jí)用法
4.3.1 設(shè)置代理
4.3.2 使用cookies
4.3.3 session會(huì)話對(duì)象
4.3.4 安全的HTTPS請(qǐng)求
4.3.5 超時(shí)設(shè)置
第5章 數(shù)據(jù)提取
5.1 使用正則表達(dá)武
5.1.1 正則表達(dá)式語(yǔ)法介紹
5.1.2 正則表達(dá)式的其他使用
5.2 使用BeautifulSoup4
5.2.1 BeautifulSoup簡(jiǎn)介
5.2.2 BeautifulSoup安裝
5.2.3 創(chuàng)建BeautifulSoup對(duì)象
5.2.4 BeautifulSoup基本使用方法
5.3 使用XPath
5.3.1 lxml庫(kù)簡(jiǎn)介和安裝
5.3.2 選取節(jié)點(diǎn)
5.3.3 節(jié)點(diǎn)間的關(guān)系
5.3.4 謂語(yǔ)的使用
5.3.5 XPath運(yùn)算符
第6章 Scrapy爬蟲框架
6.1 Scrapy框架簡(jiǎn)介和安裝
6.1.1 Scrapy框架介紹
6.1.2 安裝Scrapy框架
6.2 項(xiàng)目創(chuàng)建和項(xiàng)目目錄介紹
6.2.1 創(chuàng)建一個(gè)網(wǎng)絡(luò)爬蟲項(xiàng)目
6.2.2 項(xiàng)目目錄分析
6.3 編寫網(wǎng)絡(luò)爬蟲
6.3.1 創(chuàng)建網(wǎng)絡(luò)爬蟲
6.3.2 ScrapyShell的使用
6.3.3 自動(dòng)翻頁(yè)
6.4 Item和Pipeline
6.4.1 使用Item
6.4.2 ItemPipeline介紹
6.4.3 編寫Pipeline
6.4.4 保存數(shù)據(jù)到MySQL數(shù)據(jù)庫(kù)
6.5 中間件
6.5.1 下載中間件三大函數(shù)
6.5.2 激活Spider中間件
6.5.3 開發(fā)代理中間件
第7章 API數(shù)據(jù)采集
7.1 什么是API
7.1.1 HTTP方法及API簡(jiǎn)介
7.1.2 API響應(yīng)
7.2 無(wú)文檔API
7.2.1 查找無(wú)文檔API
7.2.2 自動(dòng)查找和記錄API
第8章 圖像識(shí)別與文字處理
8.1 0CR圖像識(shí)別庫(kù)
8.1.1 Pillow
8.1.2 OpenCV
8.1.3 Tesseract
8.1.4 NumPy
8.2 處理格式規(guī)范的文字
8.2.1 自動(dòng)調(diào)整圖像
8.2.2 從網(wǎng)站圖片中采集文字
8.3 讀取驗(yàn)證碼與訓(xùn)練
8.4 獲取驗(yàn)證碼并提交答案
第9章 遠(yuǎn)程數(shù)據(jù)采集
9.1 為什么要用遠(yuǎn)程服務(wù)器
9.1.1 避免IP地址被封殺
9.1.2 移植性與擴(kuò)展性
9.2 遠(yuǎn)程主機(jī)
9.2.1 從網(wǎng)站主機(jī)運(yùn)行
9.2.2 從云主機(jī)運(yùn)行
……
第10章 網(wǎng)頁(yè)數(shù)據(jù)采集的法律與道德約束
第11章 項(xiàng)目實(shí)戰(zhàn):招聘分析監(jiān)控系統(tǒng)-數(shù)據(jù)采集子系統(tǒng)
參考文獻(xiàn)