實戰 Python 網絡爬蟲

黃永祥

  • 出版商: 清華大學
  • 出版日期: 2019-06-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • ISBN: 7302524890
  • ISBN-13: 9787302524892
  • 相關分類: Web-crawler 網路爬蟲

立即出貨

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

相關主題

商品描述

本書從原理到實踐,循序漸進地講述了使用Python開發網絡爬蟲的核心技術。全書從邏輯上可分為基礎篇、實戰篇和爬蟲框架篇三部分。基礎篇主要介紹了編寫網絡爬蟲所需的基礎知識,包括網站分析、數據抓取、數據清洗和數據入庫。網站分析講述如何使用Chrome和Fiddler抓包工具對網站做全面分析;數據抓取介紹了Python爬蟲模塊Urllib和Requests的基礎知識;數據清洗主要介紹字符串操作、正則和BeautifulSoup的使用;數據入庫講述了MySQL和MongoDB的操作,通過ORM框架SQLAlchemy實現數據持久化,進行企業級開發。實戰篇深入講解了分佈式爬蟲、爬蟲軟件的開發、12306搶票程序和微博爬取等。框架篇主要講述流行的爬蟲框架Scrapy,並以Scrapy與Selenium、Splash、Redis結合的項目案例,讓讀者深層次瞭解Scrapy的使用。此外,本書還介紹了爬蟲的上線部署、如何自己動手開發一款爬蟲框架、反爬蟲技術的解決方案等內容。 本書使用Python 3.X編寫,技術先進,項目豐富,適合欲從事爬蟲工程師和數據分析師崗位的初學者、大學生和研究生使用,也很適合有一些網絡爬蟲編寫經驗,但希望更加全面、深入理解Python爬蟲的開發人員使用。

作者簡介

黃永祥,CSDN博客專家和簽約講師,多年軟件研發經驗,主要從事機器人流程系統研發、大數據系統研發、網絡爬蟲研發以及自動化運維繫統研發。擅長使用Python編寫高質量代碼,對Python有深入研究,熱愛分享和新技術的探索。

目錄大綱

章理解網絡爬蟲1 
1.1爬蟲的定義1 
1.2爬蟲的類型2 
1.3爬蟲的原理2 
1.4爬蟲的搜索策略4 
1.5爬蟲的合法性與開發流程5 
1.6本章小結6 
第2章爬蟲開發基礎7 
2.1 HTTP與HTTPS 7 
2.2請求頭9 
2.3 Cookies 10 
2.4 HTML 11 
2.5 JavaScript 12 
2.6 JSON 14 
2.7 Ajax 14 
2.8本章小結15 
第3章Chrome分析網站16 
3.1 Chrome開發工具16 
3.2 Elements標籤17 
3.3 Network標籤18 
3.4分析QQ音樂20 
3.5本章小結23 
第4章Fiddler抓包24 
4.1 Fiddler介紹24 
4.2 Fiddler安裝配置24 
4.3 Fiddler抓取手機應用26 
4.4 Toolbar工具欄29 
4.5 Web Session列表30 
4.6 View選項視圖32 
4.7 Quickexec命令行33 
4.8本章小結34 
第5章爬蟲庫Urllib 35 
5.1 Urllib簡介35 
5.2發送請求36 
5.3複雜的請求37 
5.4代理IP 38 
5.5使用Cookies 39 
5.6證書驗證40 
5.7數據處理41 
5.8本章小結42 
第6章爬蟲庫Requests 43 
6.1 Requests簡介及安裝43 
6.2請求方式44 
6.3複雜的請求方式45 
6.4下載與上傳47 
6.5本章小結49 
第7章Requests-Cache爬蟲緩存50 
7.1簡介及安裝50 
7.2在Requests中使用緩存50 
7.3緩存的存儲機制53 
7.4本章小結54 
第8章爬蟲庫Requests-HTML 55 
8.1簡介及安裝55 
8.2請求方式56 
8.3數據清洗56 
8.4 Ajax動態數據抓取59 
8.5本章小結61 
第9章網頁操控與數據爬取62 
9.1了解Selenium 62 
9.2安裝Selenium 63 
9.3網頁元素定位66 
9.4網頁元素操控70 
9.5常用功能73 
9.6實戰:百度自動答題80 
9.7本章小結85 
0章手機App數據爬取86 
10.1 Appium簡介及原理86 
10.2搭建開發環境87 
10.3連接Android系統92 
10.4 App的元素定位97 
10.5 App的元素操控99 
10.6實戰:淘寶商品採集102 
10.7本章小結107 
1章Splash、Mitmproxy與Aiohttp 109 
11.1 Splash動態數據抓取109 
11.1.1簡介及安裝109 
11.1.2使用Splash的API接口112 
11.2 Mitmproxy抓包116 
11.2.1簡介及安裝116 
11.2.2用Mitmdump抓取愛奇藝視頻116 
11.3 Aiohttp高並發抓取119 
11.3.1簡介及使用119 
11.3 .2 Aiohttp異步爬取小說排行榜123 
11.4本章小結126 
2章驗證碼識別128 
12.1驗證碼的類型128 
12.2 OCR技術129 
12.3第三方平台131 
12.4本章小結134 
3章數據清洗136 
13.1字符串操作136 
13.1.1截取136 
13.1.2替換137 
13.1.3查找137 
13.1.4分割138 
13.2正則表達式139 
13.2.1正則語法140 
13.2.2正則處理函數141 
13.3 BeautifulSoup數據清洗144 
13.3.1 BeautifulSoup介紹與安裝144 
13.3.2 BeautifulSoup的使用示例146 
13.4本章小結149 
4章文檔數據存儲150 
14.1 CSV數據的寫入和讀取150 
14.2 Excel數據的寫入和讀取151 
14.3 Word數據的寫入和讀取154 
14.4本章小結156 
5章ORM框架158 
15.1 SQLAlchemy介紹與安裝158 
15.1 .1操作數據庫的方法158 
15.1.2 SQLAlchemy框架介紹158 
15.1.3 SQLAlchemy的安裝159 
15.2連接數據庫160 
15.3創建數據表162 
15.4添加數據164 
15.5更新數據165 
15.6查詢數據166 
15.7本章小結168 
6章MongoDB數據庫操作169 
16.1 MongoDB介紹169 
16.2 MogoDB的安裝及使用170 
16.2.1 MongoDB的安裝與配置170 
16.2.2 MongoDB可視化工具172 
16.2.3 PyMongo的安裝173 
16.3連接MongoDB數據庫173 
16.4添加文檔174 
16.5更新文檔175 
16.6查詢文檔176 
16.7本章小結178 
7章實戰:爬取51Job招聘信息180 
17.1項目分析180 
17.2獲取城市編號180 
17.3獲取招聘職位總頁數182 
17.4爬取每個職位信息184 
17.5數據存儲188 
17.6爬蟲配置文件190 
17.7本章小結191 
8章實戰:分佈式爬蟲——QQ音樂193 
18.1項目分析193 
18.2歌曲下載194 
18.3歌手的歌曲信息198 
18.4分類歌手列表201 
18.5全站歌手列表203 
18.6數據存儲204 
18.7分佈式爬蟲205 
18.7.1分佈式概念205 
18.7.2並發庫concurrent.futures 206 
18.7.3分佈式策略207 
18.8本章小結209 
9章實戰:12306搶票爬蟲211 
19.1項目分析211 
19.2驗證碼驗證211 
19.3用戶登錄與驗證214 
19.4查詢車次219 
19.5預訂車票225 
19.6提交訂單227 
19.7生成訂單233 
19.8本章小結236 
第20章實戰:玩轉微博244 
20.1項目分析244 
20.2用戶登錄244 
20.3用戶登錄(帶驗證碼) 253 
20.4關鍵詞搜索熱門微博259 
20.5發布微博264 
20.6關注用戶268 
20.7點贊和轉發評論271 
20.8本章小結277 
第21章實戰:微博爬蟲軟件開發278 
21.1 GUI庫及PyQt5的安裝與配置278 
21.1.1 GUI庫278 
21.1.2 PyQt5安裝及環境搭建279 
21.2項目分析281 
21.3軟件主界面284 
21.4相關服務界面288 
21.5微博採集界面292 
21.6微博發布界面297 
21.7微博爬蟲功能308 
21.8本章小結315 
第22章Scrapy爬蟲開發317 
22.1認識與安裝Scrapy 317 
22.1.1常見爬蟲框架介紹317 
22.1.2 Scrapy的運行機制318 
22.1.3安裝Scrapy 319 
22.2 Scrapy爬蟲開發示例320 
22.3 Spider的編寫326 
22.4 Items的編寫329 
22.5 Item Pipeline的編寫330 
22.5.1用MongoDB實現數據入庫330 
22.5.2用SQLAlchemy實現數據入庫332 
22.6 Selectors的編寫333 
22.7文件下載336 
22.8本章小結339 
第23章Scrapy擴展開發341 
23.1剖析Scrapy中間件341 
23.1.1 SpiderMiddleware中間件342 
23.1.2 DownloaderMiddleware中間件344 
23.2自定義中間件347 
23.2.1設置代理IP服務347 
23.2 .2動態設置請求頭350 
23.2.3設置隨機Cookies 353 
23.3實戰:Scrapy+Selenium爬取豆瓣電影評論355 
23.3.1網站分析355 
23.3.2項目設計與實現357 
23.3.3定義Selenium中間件359 
23.3. 4開發Spider程序360 
23.4實戰:Scrapy+Splash爬取B站動漫信息362 
23.4.1 Scrapy_Splash實現原理363 
23.4.2網站分析363 
23.4.3項目設計與實現365 
23.4.4開發Spider程序367 
23.5實戰:Scrapy +Redis分佈式爬取貓眼排行榜369 
23.5.1 Scrapy_Redis實現原理369 
23.5.2安裝Redis數據庫371 
23.5.3網站分析372 
23.5.4項目設計與實現373 
23.5.5開發Spider程序375 
23.6分佈式爬蟲與增量式爬蟲377 
23.6.1基於管道實現增量式378 
23.6.2基於中間件實現增量式381 
23.7本章小結384 
第24章實戰:爬取鏈家樓盤信息386 
24.1項目分析386 
24.2創建項目389 
24.3項目配置389 
24.4定義存儲字段391 
24.5定義管道類392 
24.6編寫爬蟲規則396 
24.7本章小結400 
第25章實戰:QQ音樂全站爬取402 
25.1項目分析402 
25.2項目創建與配置403 
25.2.1項目創建403 
25.2.2項目配置403 
25.3定義存儲字段和管道類405 
25.3.1定義存儲字段405 
25.3.2定義管道類405 
25.4編寫爬蟲規則408 
25.5本章小結413 
第26章爬蟲的上線部署415 
26.1非框架式爬蟲部署415 
26.1.1創建可執行程序415 
26.1.2制定任務計劃程序417 
26.1.3創建服務程序421 
26.2框架式爬蟲部署424 
26.2.1 Scrapyd部署爬蟲服務424 
26.2.2 Gerapy爬蟲管理框架429 
26.3本章小結434 
第27章反爬蟲的解決方案435 
27.1常見的反爬蟲技術435 
27.2基於驗證碼的反爬蟲436 
27.2.1驗證碼出現的情況437 
27.2.2解決方案438 
27.3基於請求參數的反爬蟲439 
27.3.1請求參數的數據來源439 
27.3.2請求參數的查找440 
27.4基於請求頭的反爬蟲441 
27.5基於Cookies的反爬蟲443 
27.6本章小結447 
第28章自己動手開發爬蟲框架449 
28.1框架設計說明449 
28.2異步爬取方式450 
28.3數據清洗機制455 
28.4數據存儲機制457 
28.5實戰:用自製框架爬取豆瓣電影463 
28.6本章小結468