實戰Python網絡爬蟲 ( 簡體 字) |
作者:黃永祥 | 類別:1. -> 程式設計 -> Python 2. -> 程式設計 -> 網路爬蟲 |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 51147 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:6/1/2019 |
頁數:460 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302524892 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:隨著大數據和人工智能的普及,Python的地位也變得水漲船高,許多技術人員投身于Python開發,其中網絡爬蟲是Python最為熱門的應用領域之一。在爬蟲領域,Python可以說是處于霸主地位,Python能解決爬蟲開發過程中所遇到的難題,開發速度快且支持異步編程,大大縮短了開發周期。此外,從事數據分析的工程師,為獲取數據,很多時候也會用到網絡爬蟲的相關技術,因此,Python爬蟲編程已成為爬蟲工程師和數據分析師的必備技能。 本書結構 本書共分28章,各章內容概述如下: 第1章介紹什么是網絡爬蟲、爬蟲的類型和原理、爬蟲搜索策略和爬蟲的合法性及開發流程。 第2章講解爬蟲開發的基礎知識,包括HTTP協議、請求頭和Cookies的作用、HTML的布局結構、JavaScript的介紹、JSON的數據格式和Ajax的原理。 第3章介紹使用Chrome開發工具分析爬取網站,重點介紹開發工具的Elements和Network標簽的功能和使用方式,并通過開發工具分析QQ網站。 第4章主要介紹Fiddler抓包工具的原理和安裝配置,Fiddler用戶界面的各個功能及使用方法。 第5章講述了Urllib在Python 2和Python 3的變化及使用,包括發送請求、使用代理IP、Cookies的讀寫、HTTP證書驗收和數據處理。 第6章~第8章介紹Python第三方庫Requests、Requests-Cache爬蟲緩存和Requests-HTML,包括發送請求、使用代理IP、Cookies的讀寫、HTTP證書驗收和文件下載與上傳、復雜的請求方式、緩存的存儲機制、數據清洗以及Ajax動態數據爬取等內容。 第9章介紹網頁操控和數據爬取,重點講解Selenium的安裝與使用,并通過實戰項目“百度自動答題”,講解了Selenium的使用。 第10章介紹手機App數據爬取,包括Appium的原理與開發環境搭建、連接Android系統,并通過實戰項目“淘寶商品采集”,介紹了App數據的爬取技巧。 第11章介紹Splash、Mitmproxy與Aiohttp的安裝和使用,包括Splash動態數據抓取、Mitmproxy抓包和Aiohttp高并發抓取。 第12章介紹驗證碼的種類和識別方法,包括OCR的安裝和使用、驗證碼圖片處理和使用第三方平臺識別驗證碼。 第13章講述數據清洗的三種方法,包括字符串操作(截取、查找、分割和替換)、正則表達式的使用和第三方庫BeautifulSoup的安裝以及使用。 第14章講述如何將數據存儲到文件,包括CSV、Excel和Word文件的讀取和寫入方法。 第15章介紹ORM框架SQLAlchemy的安裝及使用,實現關系型數據庫持久化存儲數據。 第16章講述非關系型數據庫MongoDB的操作,包括MongoDB的安裝、原理和Python實現MongoDB的讀寫。 第17章至第21章介紹了5個實戰項目,分別是:爬取51Job招聘信息、分布式爬蟲——QQ音樂、12306搶票爬蟲、微博爬取和微博爬蟲軟件的開發。 第22章至第25章介紹了Scrapy爬蟲框架,包括Scrapy的運行機制、項目創建、各個組件的編寫(Setting、Items、Item Pipelines和Spider)和文件下載及Scrapy中間件,并通過實戰項目“Scrapy+Selenium爬取豆瓣電影評論”、“Scrapy+Splash爬取B站動漫信息”和“Scrapy+Redis分布式爬取貓眼排行榜”、“爬取鏈家樓盤信息”和“QQ音樂全站爬取”,深入講解了Scrapy的應用和分布式爬蟲的編寫技巧。 第26章介紹爬蟲的上線部署,包括非框架式爬蟲和框架式爬蟲的部署技巧。 第27章介紹常見的反爬蟲技術,并給出了可行的反爬蟲解決方案。 第28章介紹爬蟲框架的編寫,學習如何自己動手編寫一款爬蟲框架,以滿足特定業務場景的需求。 本書特色 循序漸進,涉及面廣:本書站在初學者的角度,循序漸進地介紹了使用Python開發網絡爬蟲的各種知識,內容由淺入深,幾乎涵蓋了目前網絡爬蟲開發的各種熱門工具和前瞻性技術。 實戰項目豐富,擴展性強:本書采用大量的實戰項目進行講解,力求通過實際應用使讀者更容易地掌握爬蟲開發技術,以應對業務需求。本書項目經過編者精心設計和挑選,根據實際開發經驗總結而來,涵蓋了在實際開發中所遇到的各種問題。對于精選項目,盡可能做到步驟詳盡、結構清晰、分析深入淺出,而且案例的擴展性強,讀者可根據實際需求擴展開發。 從理論到實踐,注重培養爬蟲開發思維:在講解過程中,不僅介紹理論知識,注重培養讀者的爬蟲開發思維,而且安排了綜合應用實例或小型應用程序,使讀者能順利地將理論應用到實踐中。 特色干貨,傾情分享:本書大部分內容都來自作者多年來的編程實踐,操作性很強。值得關注的是,本書還介紹了爬蟲軟件和爬蟲框架的開發,供學有余力的讀者擴展知識結構,提升開發技能。 源代碼下載 本書所有程序代碼均在Python 3.6下調試通過 你也可以掃描下面的二維碼下載。 如果你在下載過程中遇到問題,可發送郵件獲得幫助,郵件標題為“實戰Python網絡爬蟲下載資源”。 技術服務 讀者在學習或者工作的過程中,如果遇到實際問題,可以加入QQ群與筆者聯系,筆者會在第一時間給予回復。 讀者對象 本書主要適合以下讀者閱讀: ? Python網絡爬蟲初學者及在校學生。 ? Python初級爬蟲工程師。 ? 從事數據抓取和分析的技術人員。 ? 學習Python程序設計的開發人員。 雖然筆者力求本書更臻完美,但由于水平所限,難免會出現錯誤,特別是實例中爬取的網站可能隨時更新,導致源碼在運行過程中出現問題,歡迎廣大讀者和高手專家給予指正,筆者將十分感謝。
黃永祥 2019年1月 |
內容簡介:本書從原理到實踐,循序漸進地講述了使用Python開發網絡爬蟲的核心技術。全書從邏輯上可分為基礎篇、實戰篇和爬蟲框架篇三部分。基礎篇主要介紹了編寫網絡爬蟲所需的基礎知識,包括網站分析、數據抓取、數據清洗和數據入庫。網站分析講述如何使用Chrome和Fiddler抓包工具對網站做全面分析;數據抓取介紹了Python爬蟲模塊Urllib和Requests的基礎知識;數據清洗主要介紹字符串操作、正則和BeautifulSoup的使用;數據入庫講述了MySQL和MongoDB的操作,通過ORM框架SQLAlchemy實現數據持久化,進行企業級開發。實戰篇深入講解了分布式爬蟲、爬蟲軟件的開發、12306搶票程序和微博爬取等。框架篇主要講述流行的爬蟲框架Scrapy,并以Scrapy與Selenium、Splash、Redis結合的項目案例,讓讀者深層次了解Scrapy的使用。此外,本書還介紹了爬蟲的上線部署、如何自己動手開發一款爬蟲框架、反爬蟲技術的解決方案等內容。 本書使用Python 3.X編寫,技術先進,項目豐富,適合欲從事爬蟲工程師和數據分析師崗位的初學者、大學生和研究生使用,也很適合有一些網絡爬蟲編寫經驗,但希望更加全面、深入理解Python爬蟲的開發人員使用。 |
目錄:第1章理解網絡爬蟲 1 1.1爬蟲的定義 1 1.2爬蟲的類型 2 1.3爬蟲的原理 2 1.4爬蟲的搜索策略 4 1.5爬蟲的合法性與開發流程 5 1.6本章小結 6 第2章爬蟲開發基礎 7 2.1HTTP與HTTPS 7 2.2請求頭 9 2.3Cookies 10 2.4HTML 11 2.5JavaScript 12 2.6JSON 14 2.7Ajax 14 2.8本章小結 15 第3章Chrome分析網站 16 3.1Chrome開發工具 16 3.2Elements標簽 17 3.3Network標簽 18 3.4分析QQ音樂 20 3.5本章小結 23 第4章Fiddler抓包 24 4.1Fiddler介紹 24 4.2Fiddler安裝配置 24 4.3Fiddler抓取手機應用 26 4.4Toolbar工具欄 29 4.5WebSession列表 30 4.6View選項視圖 32 4.7Quickexec命令行 33 4.8本章小結 34 第5章爬蟲庫Urllib 35 5.1Urllib簡介 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.1Requests簡介及安裝 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.4Ajax動態數據抓取 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 第10章手機App數據爬取 86 10.1Appium簡介及原理 86 10.2搭建開發環境 87 10.3連接Android系統 92 10.4App的元素定位 97 10.5App的元素操控 99 10.6實戰:淘寶商品采集 102 10.7本章小結 107 第11章Splash、Mitmproxy與Aiohttp 109 11.1Splash動態數據抓取 109 11.1.1簡介及安裝 109 11.1.2使用Splash的API接口 112 11.2Mitmproxy抓包 116 11.2.1簡介及安裝 116 11.2.2用Mitmdump抓取愛奇藝視頻 116 11.3Aiohttp高并發抓取 119 11.3.1簡介及使用 119 11.3.2Aiohttp異步爬取小說排行榜 123 11.4本章小結 126 第12章驗證碼識別 128 12.1驗證碼的類型 128 12.2OCR技術 129 12.3第三方平臺 131 12.4本章小結 134 第13章數據清洗 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.3BeautifulSoup數據清洗 144 13.3.1BeautifulSoup介紹與安裝 144 13.3.2BeautifulSoup的使用示例 146 13.4本章小結 149 第14章文檔數據存儲 150 14.1CSV數據的寫入和讀取 150 14.2Excel數據的寫入和讀取 151 14.3Word數據的寫入和讀取 154 14.4本章小結 156 第15章ORM框架 158 15.1SQLAlchemy介紹與安裝 158 15.1.1操作數據庫的方法 158 15.1.2SQLAlchemy框架介紹 158 15.1.3SQLAlchemy的安裝 159 15.2連接數據庫 160 15.3創建數據表 162 15.4添加數據 164 15.5更新數據 165 15.6查詢數據 166 15.7本章小結 168 第16章MongoDB數據庫操作 169 16.1MongoDB介紹 169 16.2MogoDB的安裝及使用 170 16.2.1MongoDB的安裝與配置 170 16.2.2MongoDB可視化工具 172 16.2.3PyMongo的安裝 173 16.3連接MongoDB數據庫 173 16.4添加文檔 174 16.5更新文檔 175 16.6查詢文檔 176 16.7本章小結 178 第17章實戰:爬取51Job招聘信息 180 17.1項目分析 180 17.2獲取城市編號 180 17.3獲取招聘職位總頁數 182 17.4爬取每個職位信息 184 17.5數據存儲 188 17.6爬蟲配置文件 190 17.7本章小結 191 第18章實戰:分布式爬蟲——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 第19章實戰: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.1GUI庫及PyQt5的安裝與配置 278 21.1.1GUI庫 278 21.1.2PyQt5安裝及環境搭建 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.2Scrapy的運行機制 318 22.1.3安裝Scrapy 319 22.2Scrapy爬蟲開發示例 320 22.3Spider的編寫 326 22.4Items的編寫 329 22.5ItemPipeline的編寫 330 22.5.1用MongoDB實現數據入庫 330 22.5.2用SQLAlchemy實現數據入庫 332 22.6Selectors的編寫 333 22.7文件下載 336 22.8本章小結 339 第23章Scrapy擴展開發 341 23.1剖析Scrapy中間件 341 23.1.1SpiderMiddleware中間件 342 23.1.2DownloaderMiddleware中間件 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.1Scrapy_Splash實現原理 363 23.4.2網站分析 363 23.4.3項目設計與實現 365 23.4.4開發Spider程序 367 23.5實戰:Scrapy+Redis分布式爬取貓眼排行榜 369 23.5.1Scrapy_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.1Scrapyd部署爬蟲服務 424 26.2.2Gerapy爬蟲管理框架 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 |
序: |