Python網絡爬蟲從入門到精通 ( 簡體 字) |
作者:明日科技 | 類別:1. -> 程式設計 -> Python 2. -> 程式設計 -> 網路爬蟲 |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 54549 詢問書籍請說出此書號!【缺書】 NT售價: 500 元 |
出版日:6/1/2021 |
頁數:402 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302567004 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:在大數據、人工智能應用越來越普遍的今天,Python可以說是當下世界上最熱門、應用最廣泛的編程語言之一,在人工智能、爬蟲、數據分析、游戲、自動化運維等各個方面,無處不見其身影。隨著大數據時代的來臨,數據的收集與統計占據了重要地位,而數據的收集工作在很大程度上需要通過網絡爬蟲來爬取,所以網絡爬蟲技術變得十分重要。 本書提供了Python網絡爬蟲開發從入門到編程高手所必需的各類知識,共分4篇。 第1篇:基礎知識。本篇內容主要介紹網絡爬蟲入門知識,包括初識網絡爬蟲、搭建網絡爬蟲的開發環境、Web前端知識、Python自帶的網絡請求模塊urllib、第三方請求模塊urllib3和requests,以及高級網絡請求模塊。結合大量的圖示、舉例等使讀者快速掌握網絡爬蟲開發的必備知識,為以后編寫網絡爬蟲奠定堅實的基礎。 第2篇:核心技術。本篇主要介紹如何解析網絡數據(包括正則表達式解析、Xpath解析和BeautifulSoup解析),以及如何爬取動態渲染的信息、多線程與多進程爬蟲、數據處理與數據存儲等相關知識。學習完這一部分,讀者可熟練掌握如何通過網絡爬蟲獲取網絡數據并存儲數據。 第3篇:高級應用。本篇主要介紹數據可視化、App抓包工具、識別驗證碼、Scrapy爬蟲框架,以及Scrapy_Redis分布式爬蟲等知識。 第4篇:項目實戰。本篇通過一個完整的數據偵探爬蟲項目,運用軟件工程與網絡爬蟲的設計思想,讓讀者學習如何對電商數據進行網絡爬蟲軟件項目的實踐開發。書中按照“需求分析→系統設計→公共模塊設計→數據庫設計→實現項目”的流程進行介紹,帶領讀者一步一步親身體驗開發項目的全過程。 本書特點 由淺入深,循序漸進。本書以初中級程序員為對象,采用圖文結合、循序漸進的編排方式,從網絡爬蟲開發環境的搭建到網絡爬蟲的核心技術應用,最后通過一個完整的實戰項目對網絡爬蟲的開發進行了詳細講解,幫助讀者快速掌握網絡爬蟲開發技術,全面提升開發經驗。 實例典型,輕松易學。通過例子學習是最好的學習方式,本書通過“一個知識點、一個例子、一個結果、一段評析”的模式,透徹詳盡地講述了實際開發中所需的各類知識。另外,為了便于讀者閱讀程序代碼,快速學習編程技能,書中幾乎每行代碼都提供了注釋。 項目實戰,經驗累積。本書通過一個完整的電商數據爬取項目,講解實際爬蟲項目的完整開發過程,帶領讀者親身體驗開發項目的全過程,積累項目經驗。 精彩欄目,貼心提醒。本書根據需要在各章使用了很多“注意”“說明”“技巧”等小欄目,讓讀者可以在學習過程中更輕松地理解相關知識點及概念,并輕松地掌握個別技術的應用技巧。 讀者對象:初學編程的自學者、編程愛好者、大中專院校的老師和學生、相關培訓機構的老師和學員、 畢業設計的學生、初中級程序開發人員、程序測試及維護人員、參加實習的“菜鳥”程序員。 讀者服務:本書附贈的各類學習資源,讀者可登錄清華大學出版社網站,在對應圖書頁面下獲取其下載方式。也可掃描圖書封底的“文泉云盤”二維碼,獲取其下載方式。 感謝您購買本書,希望本書能成為您編程路上的領航者。 “零門檻”編程,一切皆有可能。 祝讀書快樂! |
內容簡介:《Python網絡爬蟲從入門到精通》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Python實現網絡爬蟲開發應該掌握的技術。全書共分19章,內容包括初識網絡爬蟲、了解Web前端、請求模塊urllib、請求模塊urllib3、請求模塊requests、高級網絡請求模塊、正則表達式、XPath解析、解析數據的BeautifulSoup、爬取動態渲染的信息、多線程與多進程爬蟲、數據處理、數據存儲、數據可視化、App抓包工具、識別驗證碼、Scrapy爬蟲框架、Scrapy_Redis分布式爬蟲、數據偵探。書中所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,讀者可輕松領會網絡爬蟲程序開發的精髓,快速提高開發技能。 |
目錄:第1篇基礎知識 第1章初識網絡爬蟲2 1.1網絡爬蟲概述2 1.2網絡爬蟲的分類2 1.3網絡爬蟲的基本原理3 1.4搭建開發環境4 1.4.1安裝Anaconda4 1.4.2PyCharm的下載與安裝7 1.4.3配置PyCharm9 1.4.4測試PyCharm13 1.5小結15 第2章了解Web前端16 2.1HTTP基本原理16 2.1.1HTTP協議16 2.1.2HTTP與Web服務器16 2.1.3瀏覽器中的請求和響應18 2.2HTML語言19 2.2.1什么是HTML19 2.2.2標簽、元素、結構概述19 2.2.3HTML的基本標簽21 2.3CSS層疊樣式表22 2.3.1CSS概述22 2.3.2屬性選擇器23 2.3.3類和ID選擇器24 2.4JavaScript動態腳本語言24 2.5小結27 第3章請求模塊urllib28 3.1urllib簡介28 3.2使用urlopen()方法發送請求28 3.2.1發送GET請求29 3.2.2發送POST請求30 3.2.3設置網絡超時31 3.3復雜的網絡請求32 3.3.1設置請求頭32 3.3.2Cookies的獲取與設置34 3.3.3設置代理IP39 3.4異常處理40 3.5解析鏈接41 3.5.1拆分URL42 3.5.2組合URL43 3.5.3連接URL44 3.5.4URL的編碼與解碼45 3.5.5URL參數的轉換46 3.6小結47 第4章請求模塊urllib348 4.1urllib3簡介48 4.2發送網絡請求49 4.2.1GET請求49 4.2.2POST請求50 4.2.3重試請求51 4.2.4處理響應內容51 4.3復雜請求的發送53 4.3.1設置請求頭53 4.3.2設置超時54 4.3.3設置代理55 4.4上傳文件56 4.5小結57 第5章請求模塊requests58 5.1請求方式58 5.1.1GET請求59 5.1.2對響應結果進行utf-8編碼59 5.1.3爬取二進制數據60 5.1.4GET(帶參)請求61 5.1.5POST請求62 5.2復雜的網絡請求63 5.2.1添加請求頭headers63 5.2.2驗證Cookies64 5.2.3會話請求65 5.2.4驗證請求66 5.2.5網絡超時與異常67 5.2.6上傳文件68 5.3代理服務69 5.3.1代理的應用69 5.3.2獲取免費的代理IP70 5.3.3檢測代理IP是否有效71 5.4小結72 第6章高級網絡請求模塊73 6.1Requests-Cache的安裝與測試73 6.2緩存的應用74 6.3強大的Requests-HTML模塊76 6.3.1使用Requests-HTML實現網絡請求76 6.3.2數據的提取78 6.3.3獲取動態加載的數據82 6.4小結85 第2篇核心技術 第7章正則表達式88 7.1正則表達式基礎88 7.1.1行定位符88 7.1.2元字符89 7.1.3限定符89 7.1.4字符類90 7.1.5排除字符90 7.1.6選擇字符90 7.1.7轉義字符91 7.1.8分組91 7.1.9在Python中使用正則表達式語法91 7.2使用match()進行匹配92 7.2.1匹配是否以指定字符串開頭93 7.2.2匹配任意開頭的字符串94 7.2.3匹配多個字符串94 7.2.4獲取部分內容94 7.2.5匹配指定首尾的字符串95 7.3使用search()進行匹配95 7.3.1獲取第一匹配值96 7.3.2可選匹配96 7.3.3匹配字符串邊界97 7.4使用findall()進行匹配97 7.4.1匹配所有指定字符開頭字符串98 7.4.2貪婪匹配98 7.4.3非貪婪匹配99 7.5字符串處理100 7.5.1替換字符串100 7.5.2分割字符串101 7.6案例:爬取編程e學網視頻102 7.6.1查找視頻頁面102 7.6.2分析視頻地址103 7.6.3實現視頻下載105 7.7小結105 第8章XPath解析106 8.1XPath概述106 8.2XPath的解析操作107 8.2.1解析HTML107 8.2.2獲取所有節點109 8.2.3獲取子節點110 8.2.4獲取父節點112 8.2.5獲取文本112 8.2.6屬性匹配113 8.2.7獲取屬性115 8.2.8按序獲取116 8.2.9節點軸獲取117 8.3案例:爬取豆瓣電影Top250118 8.3.1分析請求地址118 8.3.2分析信息位置119 8.3.3爬蟲代碼的實現120 8.4小結121 第9章解析數據的BeautifulSoup122 9.1使用BeautifulSoup解析數據122 9.1.1BeautifulSoup的安裝122 9.1.2解析器123 9.1.3BeautifulSoup的簡單應用124 9.2獲取節點內容125 9.2.1獲取節點對應的代碼125 9.2.2獲取節點屬性126 9.2.3獲取節點包含的文本內容127 9.2.4嵌套獲取節點內容128 9.2.5關聯獲取129 9.3方法獲取內容133 9.3.1find_all()獲取所有符合條件的內容133 9.3.2find()獲取第一個匹配的節點內容136 9.3.3其他方法137 9.4CSS選擇器137 9.5小結140 第10章爬取動態渲染的信息141 10.1Ajax數據的爬取141 10.1.1分析請求地址141 10.1.2提取視頻標題與視頻地址144 10.1.3視頻的批量下載145 10.2使用Selenium爬取動態加載的信息146 10.2.1安裝Selenium模塊146 10.2.2下載瀏覽器驅動147 10.2.3Selenium模塊的使用147 10.2.4Selenium模塊的常用方法149 10.3Splash的爬蟲應用150 10.3.1搭建Splash環境(Windows10系統)150 10.3.2搭建Splash環境(Windows7系統)153 10.3.3Splash中的HTTPAPI156 10.3.4執行lua自定義腳本159 10.4小結160 第11章多線程與多進程爬蟲161 11.1什么是線程161 11.2創建線程161 11.2.1使用threading模塊創建線程162 11.2.2使用Thread子類創建線程163 11.3線程間通信163 11.3.1什么是互斥鎖165 11.3.2使用互斥鎖165 11.3.3使用隊列在線程間通信167 11.4什么是進程169 11.5創建進程的常用方式169 11.5.1使用multiprocessing模塊創建進程169 11.5.2使用Process子類創建進程172 11.5.3使用進程池Pool創建進程174 11.6進程間通信175 11.6.1隊列簡介177 11.6.2多進程隊列的使用177 11.6.3使用隊列在進程間通信179 11.7多進程爬蟲180 11.8小結185 第12章數據處理186 12.1初識Pandas186 12.2Series對象187 12.2.1圖解Series對象187 12.2.2創建一個Series對象188 12.2.3手動設置Series索引188 12.2.4Series的索引189 12.2.5獲取Series索引和值190 12.3DataFrame對象190 12.3.1圖解DataFrame對象191 12.3.2創建一個DataFrame對象192 12.3.3DataFrame的重要屬性和函數194 12.4數據的增、刪、改、查195 12.4.1增加數據195 12.4.2刪除數據196 12.4.3修改數據197 12.4.4查詢數據198 12.5數據清洗199 12.5.1NaN數據處理199 12.5.2去除重復數據202 12.6數據轉換204 12.6.1DataFrame轉換為字典204 12.6.2DataFrame轉換為列表206 12.6.3DataFrame轉換為元組206 12.7導入外部數據207 12.7.1導入.xls或.xlsx文件207 12.7.2導入.csv文件211 12.7.3導入.txt文本文件213 12.7.4導入HTML網頁213 12.8數據排序與排名214 12.8.1數據排序214 12.8.2數據排名217 12.9簡單的數據計算219 12.9.1求和(sum函數)219 12.9.2求均值(mean函數)220 12.9.3求最大值(max函數)221 12.9.4求最小值(min函數)221 12.10數據分組統計222 12.10.1分組統計groupby函數222 12.10.2對分組數據進行迭代224 12.10.3通過字典和Series對象進行分組統計225 12.11日期數據處理227 12.11.1DataFrame的日期數據轉換227 12.11.2dt對象的使用229 12.11.3獲取日期區間的數據230 12.11.4按不同時期統計并顯示數據231 12.12小結233 第13章數據存儲234 13.1文件的存取234 13.1.1基本文件操作TXT234 13.1.2存儲CSV文件239 13.1.3存儲Excel文件240 13.2SQLite數據庫241 13.2.1創建數據庫文件242 13.2.2操作SQLite242 13.3MySQL數據庫244 13.3.1下載與安裝MySQL244 13.3.2安裝PyMySQL248 13.3.3連接數據庫249 13.3.4創建數據表250 13.3.5操作MySQL數據表251 13.4小結252 第3篇高級應用 第14章數據可視化254 14.1Matplotlib概述254 14.1.1Matplotlib簡介254 14.1.2安裝Matplotlib257 14.2圖表的常用設置258 14.2.1基本繪圖plot函數258 14.2.2設置畫布261 14.2.3設置坐標軸262 14.2.4添加文本標簽265 14.2.5設置標題和圖例266 14.2.6添加注釋268 14.3常用圖表的繪制269 14.3.1繪制折線圖270 14.3.2繪制柱形圖271 14.3.3繪制餅形圖273 14.4案例:可視化二手房數據查詢系統278 14.5小結285 第15章App抓包工具286 15.1Charles工具的下載與安裝286 15.2SSL證書的安裝288 15.2.1安裝PC端證書288 15.2.2設置代理291 15.2.3配置網絡292 15.2.4安裝手機端證書294 15.3小結296 第16章識別驗證碼297 16.1字符驗證碼297 16.1.1搭建OCR環境297 16.1.2下載驗證碼圖片298 16.1.3識別驗證碼299 16.2第三方驗證碼識別301 16.3滑動拼圖驗證碼305 16.4小結307 第17章Scrapy爬蟲框架308 17.1了解Scrapy爬蟲框架308 17.2搭建Scrapy爬蟲框架309 17.2.1使用Anaconda安裝Scrapy309 17.2.2Windows系統下配置Scrapy310 17.3Scrapy的基本應用312 17.3.1創建Scrapy項目312 17.3.2創建爬蟲313 17.3.3獲取數據316 17.3.4將爬取的數據保存為多種格式的文件318 17.4編寫ItemPipeline319 17.4.1項目管道的核心方法319 17.4.2將信息存儲至數據庫320 17.5自定義中間件324 17.5.1設置隨機請求頭325 17.5.2設置Cookies327 17.5.3設置代理ip330 17.6文件下載332 17.7小結334 第18章Scrapy_Redis分布式爬蟲335 18.1安裝Redis數據庫335 18.2Scrapy-Redis模塊337 18.3分布式爬取中文日報新聞數據338 18.3.1分析網頁地址338 18.3.2創建MySQL數據表339 18.3.3創建Scrapy項目340 18.3.4啟動分布式爬蟲344 18.4自定義分布式爬蟲348 18.5小結354 第4篇項目實戰 第19章數據偵探356 19.1需求分析356 19.2系統設計356 19.2.1系統功能結構356 19.2.2系統業務流程357 19.2.3系統預覽358 19.3系統開發必備360 19.3.1開發工具準備360 19.3.2文件夾組織結構360 19.4主窗體的UI設計361 19.4.1主窗體的布局361 19.4.2主窗體顯示效果363 19.5設計數據庫表結構364 19.6爬取數據365 19.6.1獲取京東商品熱賣排行信息365 19.6.2獲取價格信息370 19.6.3獲取評價信息372 19.6.4定義數據庫操作文件375 19.7主窗體的數據展示378 19.7.1顯示前10名熱賣榜圖文信息378 19.7.2顯示關注商品列表382 19.7.3顯示商品分類比例餅圖389 19.8外設產品熱賣榜392 19.9商品預警395 19.9.1關注商品中、差評預警395 19.9.2關注商品價格變化預警398 19.9.3更新關注商品信息400 19.10系統功能401 19.11小結403 |
序: |