內容簡介
矽谷工程師爬蟲手冊:用Python成為進階高手
內容簡介
循序漸進,涉及面廣
站在初學者的角度,循序漸進地介紹使用Python開發網路爬蟲的各
種知識,內容由淺入深,涵蓋目前網路爬蟲開發的各種熱門工具和前瞻性技術。
從理論到實作,培養爬蟲開發思維
在說明過程中,不僅介紹理論知識,注重培養讀者的爬蟲開發思維,而且安排綜合應用實例或小型應用程式,讓讀者能順利地將理論應用到實作中。
實戰專案豐富,擴充性強
作者精心設計和挑選,根據實際開發經驗歸納而來的實戰專案,涵蓋在實際開發中所遇到的各種問題。說明步驟詳盡、結構清晰、分析深入淺出,而且案例擴充性強,讓讀者更容易掌握爬蟲開發技術,以應對業務需求,還可根據實際需求擴充開發。
內容豐富,傾情分享
本書內容都來自作者多年的程式設計實作,操作性很強。還介紹爬蟲軟體和爬蟲架構的開發,幫助讀者擴充知識結構,提升開發技能。
本書特色
一本讓你夠格去Google、百度、微軟、fb上班的修鍊大法
◎爬文字、爬評論、爬音樂、爬圖片、爬電影,無所不爬!
◎存文字、存表格、存word、存db,存json、存csv,什麼都存!
◎Fiddler、 urlib、 requests、 selenium、 appium、 scrapy,樣樣都有!
◎SQLAchemy、 MongoDB、MySQL、Redis、 SQLServer,格式通吃!
◎百度、QQ、微博、求職網、搶票網、購物網、房仲網,通通都抓!
◎自己完成爬蟲視窗程式、自己開發爬蟲架構、自己設計反爬機制!
適合讀者群
Python網路爬蟲初學者、Python初級爬蟲工程師、從事資料抓取和分析的技術人員,或學習Python程式設計的開發人員。
內容簡介
循序漸進,涉及面廣
站在初學者的角度,循序漸進地介紹使用Python開發網路爬蟲的各
種知識,內容由淺入深,涵蓋目前網路爬蟲開發的各種熱門工具和前瞻性技術。
從理論到實作,培養爬蟲開發思維
在說明過程中,不僅介紹理論知識,注重培養讀者的爬蟲開發思維,而且安排綜合應用實例或小型應用程式,讓讀者能順利地將理論應用到實作中。
實戰專案豐富,擴充性強
作者精心設計和挑選,根據實際開發經驗歸納而來的實戰專案,涵蓋在實際開發中所遇到的各種問題。說明步驟詳盡、結構清晰、分析深入淺出,而且案例擴充性強,讓讀者更容易掌握爬蟲開發技術,以應對業務需求,還可根據實際需求擴充開發。
內容豐富,傾情分享
本書內容都來自作者多年的程式設計實作,操作性很強。還介紹爬蟲軟體和爬蟲架構的開發,幫助讀者擴充知識結構,提升開發技能。
本書特色
一本讓你夠格去Google、百度、微軟、fb上班的修鍊大法
◎爬文字、爬評論、爬音樂、爬圖片、爬電影,無所不爬!
◎存文字、存表格、存word、存db,存json、存csv,什麼都存!
◎Fiddler、 urlib、 requests、 selenium、 appium、 scrapy,樣樣都有!
◎SQLAchemy、 MongoDB、MySQL、Redis、 SQLServer,格式通吃!
◎百度、QQ、微博、求職網、搶票網、購物網、房仲網,通通都抓!
◎自己完成爬蟲視窗程式、自己開發爬蟲架構、自己設計反爬機制!
適合讀者群
Python網路爬蟲初學者、Python初級爬蟲工程師、從事資料抓取和分析的技術人員,或學習Python程式設計的開發人員。
作者簡介
作者簡介
黃永祥
CSDN博客專家和簽約講師,多年軟體研發經驗,主要從事機器人流程系統、大數據系統、網路爬蟲研發,以及自動化運維系統研發。擅長使用Python編寫高品質程式碼,對Python有深入研究,熱愛分享和新技術的探索。
黃永祥
CSDN博客專家和簽約講師,多年軟體研發經驗,主要從事機器人流程系統、大數據系統、網路爬蟲研發,以及自動化運維系統研發。擅長使用Python編寫高品質程式碼,對Python有深入研究,熱愛分享和新技術的探索。
內容目錄
目錄
前言
01了解網路爬蟲
1.1 爬蟲的定義
1.2 爬蟲的類型
1.3 爬蟲的原理
1.4 爬蟲的搜索策略
1.5 爬蟲的合法性與開發流程
1.6 本章小結
02 爬蟲開發基礎
2.1 HTTP 與HTTPS
2.2 請求標頭
2.3 Cookies
2.4 HTML
2.5 JavaScript
2.6 JSON
2.7 Ajax
2.8 本章小結
03 Chrome 分析網站
3.1 Chrome 開發工具
3.2 Elements 標籤
3.3 Network 標籤
3.4 分析QQ 音樂
3.5 本章小結
04 Fiddler 封包截取
4.1 Fiddler 介紹
4.2 Fiddler 安裝設定
4.3 Fiddler 抓取手機應用
4.4 Toolbar 工具列
4.5 Web Session 列表
4.6 View 選項視圖
4.7 Quickexec 命令列
4.8 本章小結
05 爬蟲函數庫Urllib
5.1 Urllib 簡介
5.2 發送請求
5.3 複雜的請求
5.4 代理IP
5.5 使用Cookies
5.6 證書驗證
5.7 資料處理
5.8 本章小結
06 爬蟲函數庫Requests
6.1 Requests 簡介及安裝
6.2 請求方式
6.3 複雜的請求方式
6.4 下載與上傳
6.5 本章小結
07 Requests-Cache爬蟲快取
7.1 簡介及安裝
7.2 在Requests 中使用快取
7.3 快取的儲存機制
7.4 本章小結
08 爬蟲函數庫Requests-HTML
8.1 簡介及安裝
8.2 請求方式
8.3 資料清洗
8.4 Ajax 動態資料抓取
8.5 本章小結
09 網頁操控與資料爬取
9.1 了解Selenium
9.2 安裝Selenium
9.3 網頁元素定位
9.4 網頁元素操控
9.5 常用功能
9.6 實戰:百度自動答題
9.7 本章小結
10 手機App 資料爬取
10.1 Appium 簡介及原理
10.2 架設開發環境
10.3 連接Android 系統
10.4 App 的元素定位
10.5 App 的元素操控
10.6 實戰:淘寶商品擷取
10.7 本章小結
11 Splash、Mitmproxy與Aiohttp
11.1 Splash 動態資料抓取
11.2 Mitmproxy 封包截取
11.3 Aiohttp 高平行處理抓取
11.4 本章小結
12 驗證碼識別
12.1 驗證碼的類型
12.2 OCR 技術
12.3 協力廠商平台
12.4 本章小結
13 資料清洗
13.1 字串操作
13.2 正規表示法
13.3 BeautifulSoup 資料清洗
13.4 本章小結
14 文件資料儲存
14.1 CSV 資料的寫入和讀取
14.2 Excel 資料的寫入和讀取
14.3 Word 資料的寫入和讀取
14.4 本章小結
15 ORM 架構
15.1 SQLAlchemy 介紹與安裝
15.2 連接資料庫
15.3 建立資料表
15.4 新增資料
15.5 更新資料
15.6 查詢資料
15.7 本章小結
16 MongoDB 資料庫操作
16.1 MongoDB 介紹
16.2 MogoDB 的安裝及使用
16.3 連接MongoDB 資料庫
16.4 新增文件
16.5 更新文件
16.6 查詢文件
16.7 本章小結
17 實戰:爬取51Job應徵資訊
17.1 專案分析
17.2 取得城市編號
17.3 取得應徵職務總頁數
17.4 爬取每個職務資訊
17.5 資料儲存
17.6 爬蟲設定檔
17.7 本章小結
18 實戰:分散式爬蟲--QQ 音樂
18.1 專案分析
18.2 歌曲下載
18.3 歌手的歌曲資訊
18.4 分類歌手列表
18.5 全站歌手列表
18.6 資料儲存
18.7 分散式爬蟲
18.8 本章小結
19 實戰:12306 搶票爬蟲
19.1 專案分析
19.2 驗證碼驗證
19.3 使用者登入與驗證
19.4 查詢車次
19.5 預訂車票
19.6 提交訂單
19.7 生成訂單
19.8 本章小結
20 實戰:玩轉微博
20.1 專案分析
20.2 使用者登入
20.3 使用者登入(帶驗證碼)
20.4 關鍵字搜索熱門微博
20.5 發布微博
20.6 關注使用者
20.7 按讚和轉發評論
20.8 本章小結
21 實戰:微博爬蟲軟體開發
21.1 GUI 函數庫及PyQt5 的安裝與設定
21.2 專案分析
21.3 軟體主介面
21.4 相關服務介面
21.5 微博擷取介面
21.6 微博發佈介面
21.7 微博爬蟲功能
21.8 本章小結
22 Scrapy 爬蟲開發
22.1 認識與安裝Scrapy
22.2 Scrapy 爬蟲開發範例
22.3 Spider 的撰寫
22.4 Items 的撰寫
22.5 Item Pipeline 的撰寫
22.6 Selectors 的撰寫
22.7 檔案下載
22.8 本章小結
23 Scrapy 擴充開發
23.1 剖析Scrapy 中介軟體
23.2 自訂中介軟體
23.3 實戰:Scrapy+Selenium 爬取豆瓣電影評
23.4 實戰:Scrapy+Splash 爬取B 站動漫資訊
23.5 實戰:Scrapy+Redis 分散式爬取貓眼排行榜
23.6 分散式爬蟲與增量式爬蟲
23.7 本章小結
24 實戰:爬取鏈家房地產資訊
24.1 專案分析
24.2 建立專案
24.3 專案設定
24.4 定義儲存欄位
24.5 定義管線類別
24.6 撰寫爬蟲規則
24.7 本章小結
25 實戰:QQ 音樂全站爬取
25.1 專案分析
25.2 專案建立與設定
25.3 定義儲存欄位和管線類別
25.4 撰寫爬蟲規則
25.5 本章小結
26 爬蟲的上線部署
26.1 非架構式爬蟲部署
26.2 架構式爬蟲部署
26.3 本章小結
27 反爬蟲的解決方案
27.1 常見的反爬蟲技術
27.2 以驗證碼為基礎的反爬蟲
27.3 以請求參數為基礎的反爬蟲
27.4 以請求標頭為基礎的反爬蟲
27.5 以Cookies 為基礎的反爬蟲
27.6 本章小結
28 自己動手開發爬蟲架構
28.1 架構設計說明
28.2 非同步爬取方式
28.3 資料清洗機制
28.4 資料儲存機制
28.5 實戰:用自製架構爬取豆瓣電影
28.6 本章小結
前言
01了解網路爬蟲
1.1 爬蟲的定義
1.2 爬蟲的類型
1.3 爬蟲的原理
1.4 爬蟲的搜索策略
1.5 爬蟲的合法性與開發流程
1.6 本章小結
02 爬蟲開發基礎
2.1 HTTP 與HTTPS
2.2 請求標頭
2.3 Cookies
2.4 HTML
2.5 JavaScript
2.6 JSON
2.7 Ajax
2.8 本章小結
03 Chrome 分析網站
3.1 Chrome 開發工具
3.2 Elements 標籤
3.3 Network 標籤
3.4 分析QQ 音樂
3.5 本章小結
04 Fiddler 封包截取
4.1 Fiddler 介紹
4.2 Fiddler 安裝設定
4.3 Fiddler 抓取手機應用
4.4 Toolbar 工具列
4.5 Web Session 列表
4.6 View 選項視圖
4.7 Quickexec 命令列
4.8 本章小結
05 爬蟲函數庫Urllib
5.1 Urllib 簡介
5.2 發送請求
5.3 複雜的請求
5.4 代理IP
5.5 使用Cookies
5.6 證書驗證
5.7 資料處理
5.8 本章小結
06 爬蟲函數庫Requests
6.1 Requests 簡介及安裝
6.2 請求方式
6.3 複雜的請求方式
6.4 下載與上傳
6.5 本章小結
07 Requests-Cache爬蟲快取
7.1 簡介及安裝
7.2 在Requests 中使用快取
7.3 快取的儲存機制
7.4 本章小結
08 爬蟲函數庫Requests-HTML
8.1 簡介及安裝
8.2 請求方式
8.3 資料清洗
8.4 Ajax 動態資料抓取
8.5 本章小結
09 網頁操控與資料爬取
9.1 了解Selenium
9.2 安裝Selenium
9.3 網頁元素定位
9.4 網頁元素操控
9.5 常用功能
9.6 實戰:百度自動答題
9.7 本章小結
10 手機App 資料爬取
10.1 Appium 簡介及原理
10.2 架設開發環境
10.3 連接Android 系統
10.4 App 的元素定位
10.5 App 的元素操控
10.6 實戰:淘寶商品擷取
10.7 本章小結
11 Splash、Mitmproxy與Aiohttp
11.1 Splash 動態資料抓取
11.2 Mitmproxy 封包截取
11.3 Aiohttp 高平行處理抓取
11.4 本章小結
12 驗證碼識別
12.1 驗證碼的類型
12.2 OCR 技術
12.3 協力廠商平台
12.4 本章小結
13 資料清洗
13.1 字串操作
13.2 正規表示法
13.3 BeautifulSoup 資料清洗
13.4 本章小結
14 文件資料儲存
14.1 CSV 資料的寫入和讀取
14.2 Excel 資料的寫入和讀取
14.3 Word 資料的寫入和讀取
14.4 本章小結
15 ORM 架構
15.1 SQLAlchemy 介紹與安裝
15.2 連接資料庫
15.3 建立資料表
15.4 新增資料
15.5 更新資料
15.6 查詢資料
15.7 本章小結
16 MongoDB 資料庫操作
16.1 MongoDB 介紹
16.2 MogoDB 的安裝及使用
16.3 連接MongoDB 資料庫
16.4 新增文件
16.5 更新文件
16.6 查詢文件
16.7 本章小結
17 實戰:爬取51Job應徵資訊
17.1 專案分析
17.2 取得城市編號
17.3 取得應徵職務總頁數
17.4 爬取每個職務資訊
17.5 資料儲存
17.6 爬蟲設定檔
17.7 本章小結
18 實戰:分散式爬蟲--QQ 音樂
18.1 專案分析
18.2 歌曲下載
18.3 歌手的歌曲資訊
18.4 分類歌手列表
18.5 全站歌手列表
18.6 資料儲存
18.7 分散式爬蟲
18.8 本章小結
19 實戰:12306 搶票爬蟲
19.1 專案分析
19.2 驗證碼驗證
19.3 使用者登入與驗證
19.4 查詢車次
19.5 預訂車票
19.6 提交訂單
19.7 生成訂單
19.8 本章小結
20 實戰:玩轉微博
20.1 專案分析
20.2 使用者登入
20.3 使用者登入(帶驗證碼)
20.4 關鍵字搜索熱門微博
20.5 發布微博
20.6 關注使用者
20.7 按讚和轉發評論
20.8 本章小結
21 實戰:微博爬蟲軟體開發
21.1 GUI 函數庫及PyQt5 的安裝與設定
21.2 專案分析
21.3 軟體主介面
21.4 相關服務介面
21.5 微博擷取介面
21.6 微博發佈介面
21.7 微博爬蟲功能
21.8 本章小結
22 Scrapy 爬蟲開發
22.1 認識與安裝Scrapy
22.2 Scrapy 爬蟲開發範例
22.3 Spider 的撰寫
22.4 Items 的撰寫
22.5 Item Pipeline 的撰寫
22.6 Selectors 的撰寫
22.7 檔案下載
22.8 本章小結
23 Scrapy 擴充開發
23.1 剖析Scrapy 中介軟體
23.2 自訂中介軟體
23.3 實戰:Scrapy+Selenium 爬取豆瓣電影評
23.4 實戰:Scrapy+Splash 爬取B 站動漫資訊
23.5 實戰:Scrapy+Redis 分散式爬取貓眼排行榜
23.6 分散式爬蟲與增量式爬蟲
23.7 本章小結
24 實戰:爬取鏈家房地產資訊
24.1 專案分析
24.2 建立專案
24.3 專案設定
24.4 定義儲存欄位
24.5 定義管線類別
24.6 撰寫爬蟲規則
24.7 本章小結
25 實戰:QQ 音樂全站爬取
25.1 專案分析
25.2 專案建立與設定
25.3 定義儲存欄位和管線類別
25.4 撰寫爬蟲規則
25.5 本章小結
26 爬蟲的上線部署
26.1 非架構式爬蟲部署
26.2 架構式爬蟲部署
26.3 本章小結
27 反爬蟲的解決方案
27.1 常見的反爬蟲技術
27.2 以驗證碼為基礎的反爬蟲
27.3 以請求參數為基礎的反爬蟲
27.4 以請求標頭為基礎的反爬蟲
27.5 以Cookies 為基礎的反爬蟲
27.6 本章小結
28 自己動手開發爬蟲架構
28.1 架構設計說明
28.2 非同步爬取方式
28.3 資料清洗機制
28.4 資料儲存機制
28.5 實戰:用自製架構爬取豆瓣電影
28.6 本章小結
ISBN: 9789865501273