《Python網(wǎng)絡爬蟲技術手冊:基礎·實戰(zhàn)·強化》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內(nèi)容全面,以理論聯(lián)系實際、能學到并做到為宗旨,以技術為核心,以案例為輔助,引領讀者全面學習基礎技術、代碼編寫方法和具體應用項目,旨在為想要進入相應領域或者已經(jīng)在該領域深耕多年的技術人員提供新而全的技術性內(nèi)容及案例。 本書是一本側(cè)重編程基礎+實踐的Python爬蟲圖書...
《Python網(wǎng)絡爬蟲技術手冊:基礎·實戰(zhàn)·強化》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內(nèi)容全面,以理論聯(lián)系實際、能學到并做到為宗旨,以技術為核心,以案例為輔助,引領讀者全面學習基礎技術、代碼編寫方法和具體應用項目,旨在為想要進入相應領域或者已經(jīng)在該領域深耕多年的技術人員提供新而全的技術性內(nèi)容及案例。 本書是一本側(cè)重編程基礎+實踐的Python爬蟲圖書,從基礎、實戰(zhàn)、強化三個層次循序漸進地介紹了網(wǎng)絡爬蟲入門必備知識:基礎篇主要講解網(wǎng)絡爬蟲的基礎內(nèi)容;實戰(zhàn)篇主要講解目前應用最廣的各類數(shù)據(jù)庫爬蟲相關技術和案例;強化篇結(jié)合數(shù)據(jù)庫、數(shù)據(jù)分析、可視化等進行大型項目綜合實戰(zhàn)練習。本書內(nèi)容充實,給讀者提供了較為豐富全面的技術支持和案例強化,通過各種示例將學習與應用相結(jié)合,打造輕松學習、零壓力學習的環(huán)境,通過案例對所學知識進行綜合應用,通過開發(fā)實際項目將網(wǎng)絡爬蟲的各項技能應用到實際工作中,幫助讀者實現(xiàn)學以致用,快速掌握網(wǎng)絡爬蟲的各項技能。 本書提供豐富的資源,包含109個實例、13個實戰(zhàn)案例、2個應用強化項目,力求為讀者打造一本基礎+實戰(zhàn)+強化一體化的、精彩的Python網(wǎng)絡爬蟲圖書。 本書不僅適合初學者、數(shù)據(jù)采集相關技術人員、對數(shù)據(jù)感興趣的人員,而且適合從事其他崗位想掌握一定的數(shù)據(jù)采集能力的職場人員閱讀參考。
從工業(yè)4.0到“十四五”規(guī)劃,我國信息時代正式踏上新的階梯,電子設備已經(jīng)普及,在人們的日常生活中隨處可見。信息社會給人們帶來了極大的便利,信息捕獲、信息處理分析等在各個行業(yè)得到普遍應用,推動整個社會向前穩(wěn)固發(fā)展。 計算機設備和信息數(shù)據(jù)的相互融合,對各個行業(yè)來說都是一次非常大的進步,已經(jīng)滲入到工業(yè)、農(nóng)業(yè)、商業(yè)、軍事等領域,同時其相關應用產(chǎn)業(yè)也得到一定發(fā)展。就目前來看,各類編程語言的發(fā)展、人工智能相關算法的應用、大數(shù)據(jù)時代的數(shù)據(jù)處理和分析都是計算機科學領域各大高校、各個企業(yè)在不斷攻關的難題,是挑戰(zhàn)也是機遇。因此,我們策劃編寫了“計算機科學與技術手冊系列”圖書,旨在為想要進入相應領域的初學者或者已經(jīng)在該領域深耕多年的從業(yè)者提供新而全的技術性內(nèi)容,以及豐富、典型的實戰(zhàn)案例。 現(xiàn)如今大數(shù)據(jù)已經(jīng)滲透到每一個行業(yè)當中,成為重要的生產(chǎn)因素。由于人們不斷對海量數(shù)據(jù)的挖掘與運用,爬蟲工程師在互聯(lián)網(wǎng)數(shù)據(jù)公司中占據(jù)非常重要的地位。 可以制作爬蟲的編程語言有多種,其中最受歡迎的便是Python編程語言,該語言簡單、易學,并且支持多種第三方模塊,使得其應用范圍越來越廣。本書側(cè)重網(wǎng)絡爬蟲的編程基礎與實踐,為保證讀者學以致用,在實踐方面循序漸進地進行3個層次的篇章介紹,即基礎篇、實戰(zhàn)篇和強化篇。 本書內(nèi)容 全書共分為31章,主要通過“基礎篇(16章)+實戰(zhàn)篇(13章)+強化篇(2章)”三大維度一體化的講解方式,具體的學習結(jié)構(gòu)如下圖所示。 本書特色 1.突出重點、學以致用 書中每個知識點都結(jié)合了簡單、易懂的示例代碼以及非常詳細的注釋信息,力求讀者能夠快速理解所學知識,提高學習效率,縮短學習路徑。 實例代碼與運行結(jié)果 2.提升思維、綜合運用 本書以知識點綜合運用的方式,帶領讀者學習各種趣味性較強的爬蟲案例,讓讀者不斷提升編寫網(wǎng)絡爬蟲的思維,還可以快速提升對知識點的綜合運用能力,讓讀者能夠回顧以往所學的知識點,并結(jié)合新的知識點進行綜合應用。 3.綜合技術、實際項目 本書在強化篇中提供了兩個貼近生活應用的項目,力求通過實際應用使讀者更容易地掌握爬蟲技術與應對業(yè)務的需求。爬蟲項目都是根據(jù)實際開發(fā)經(jīng)驗總結(jié)而來的,包含了在實際開發(fā)中所遇到的各種問題。項目結(jié)構(gòu)清晰、擴展性強,讀者可根據(jù)個人需求進行擴展開發(fā)。 4.精彩欄目、貼心提示 本書根據(jù)實際學習的需要,設置了“注意”“說明”等許多貼心的小欄目,輔助讀者輕松理解所學知識,規(guī)避編程陷阱。 本書由明日科技的Python開發(fā)團隊策劃并組織編寫,主要編寫人員有李磊、王國輝、高春艷、馮春龍、李再天、王小科、賽奎春、申小琦、趙寧、張鑫、周佳星、楊柳、葛忠月、李春林、宋萬勇、張寶華、楊麗、劉媛媛、龐鳳、胡冬、梁英、譚暢、何平、李菁菁、依瑩瑩、宋磊等。在編寫本書的過程中,我們本著科學、嚴謹?shù)膽B(tài)度,力求精益求精,但疏漏之處在所難免,敬請廣大讀者批評斧正。 感謝您閱讀本書,希望本書能成為您編程路上的領航者。 祝您讀書快樂! 編著者
第1篇 基礎篇 第1章 爬蟲基礎 1.1 什么是網(wǎng)絡爬蟲 2 1.2 網(wǎng)絡爬蟲的分類 3 1.3 網(wǎng)絡爬蟲的原理 3 1.4 HTTP基本原理 3 1.4.1 什么是URL 3 1.4.2 HTTP協(xié)議 4 1.4.3 HTTP與Web服務器 4 1.4.4 瀏覽器中的請求和響應 5 1.5 網(wǎng)頁的基本結(jié)構(gòu) 6 1.5.1 了解HTML 6 1.5.2 了解CSS 6 1.5.3 了解JavaScript 8 第2章 搭建網(wǎng)絡爬蟲開發(fā)環(huán)境 2.1 Anaconda的安裝 10 2.2 下載與安裝PyCharm 13 2.3 配置PyCharm 16 2.4 測試PyCharm 18 第3章 網(wǎng)絡請求urllib模塊 3.1 了解urllib 20 3.2 發(fā)送網(wǎng)絡請求 20 3.2.1 發(fā)送GET請求 21 實例3.1 演示常用的方法與屬性 21 3.2.2 發(fā)送POST請求 22 實例3.2 發(fā)送POST請求 22 3.2.3 請求超時 22 實例3.3 處理網(wǎng)絡超時 23 3.2.4 設置請求頭 23 實例3.4 設置請求頭 24 3.2.5 獲取與設置Cookie 25 實例3.5 模擬登錄 25 實例3.6 獲取Cookie 27 實例3.7 保存Cookie文件 27 實例3.8 獲取登錄后頁面中的信息 28 3.2.6 代理IP的設置 29 實例3.9 設置代理IP 29 3.3 處理請求異常 29 實例3.10 處理URLError異常 29 實例3.11 使用HTTPError類捕獲異常 30 實例3.12 雙重異常的捕獲 31 3.4 解析URL 31 3.4.1 URL的拆分(urlparse、urlsplit) 31 實例3.13 使用urlparse()方法拆分URL 32 實例3.14 使用urlsplit()方法拆分URL 32 3.4.2 URL的組合(urlunparse、urlunsplit) 33 實例3.15 使用urlunparse()方法組合URL 33 實例3.16 使用urlunsplit()方法組合URL 34 3.4.3 URL的連接(urljoin) 34 實例3.17 使用urljoin()方法連接URL 34 3.4.4 URL的編碼與解碼(urlencode、quote、unquote) 35 實例3.18 使用urlencode()方法編碼請求參數(shù) 35 實例3.19 使用quote()方法編碼字符串參數(shù) 35 實例3.20 使用unquote()方法解碼請求參數(shù) 36 3.4.5 URL的參數(shù)轉(zhuǎn)換 36 實例3.21 使用parse_qs()方法將參數(shù)轉(zhuǎn)換為字典類型 36 實例3.22 使用parse_qsl()方法將參數(shù)轉(zhuǎn)換為元組所組成的列表 36 3.5 綜合案例——爬取“百度熱搜” 37 3.5.1 分析數(shù)據(jù) 37 3.5.2 實現(xiàn)網(wǎng)絡爬蟲 37 3.6 實戰(zhàn)練習 39 第4章 網(wǎng)絡請求urllib3模塊 4.1 了解urllib3 40 4.2 發(fā)送網(wǎng)絡請求 41 4.2.1 發(fā)送GET請求 41 實例4.1 發(fā)送GET請求 41 實例4.2 發(fā)送多個請求 41 4.2.2 發(fā)送POST請求 42 實例4.3 發(fā)送POST請求 42 4.2.3 重試請求 43 實例4.4 重試請求 43 4.2.4 獲得響應內(nèi)容 43 實例4.5 獲取響應頭信息 43 實例4.6 處理服務器返回的JSON信息 44 實例4.7 處理服務器返回二進制數(shù)據(jù) 44 4.2.5 設置請求頭 45 實例4.8 設置請求頭 45 4.2.6 設置超時 46 實例4.9 設置超時 46 4.2.7 設置代理IP 47 實例4.10 設置代理IP 47 4.3 上傳文件 47 實例4.11 上傳文本文件 47 實例4.12 上傳圖片文件 48 4.4 綜合案例——爬取必應壁紙 48 4.4.1 分析數(shù)據(jù) 48 4.4.2 實現(xiàn)網(wǎng)絡爬蟲 49 4.5 實戰(zhàn)練習 51 第5章 網(wǎng)絡請求requests模塊 5.1 基本請求方式 52 5.1.1 發(fā)送GET請求 53 實例5.1 發(fā)送GET請求不帶參數(shù) 53 5.1.2 設置編碼 53 實例5.2 獲取網(wǎng)頁源碼 53 5.1.3 二進制數(shù)據(jù)的爬取 54 實例5.3 下載百度logo圖片 54 5.1.4 發(fā)送GET(帶參數(shù))請求 54 5.1.5 發(fā)送POST請求 55 實例5.4 發(fā)送POST請求 55 5.2 高級請求方式 56 5.2.1 設置請求頭 56 實例5.5 設置請求頭 56 5.2.2 Cookie的驗證 57 實例5.6 模擬豆瓣登錄 57 5.2.3 會話請求 58 實例5.7 會話請求 58 5.2.4 驗證請求 58 實例5.8 驗證請求 59 5.2.5 網(wǎng)絡超時與異常 59 實例5.9 網(wǎng)絡超時與異常 59 實例5.10 判斷網(wǎng)絡異常 60 5.2.6 文件上傳 60 實例5.11 上傳圖片文件 60 5.2.7 代理的應用 61 實例5.12 使用代理IP發(fā)送請求 61 5.3 綜合案例——爬取糗事百科(視頻) 62 5.3.1 分析數(shù)據(jù) 62 5.3.2 實現(xiàn)爬蟲 63 5.4 實戰(zhàn)練習 64 第6章 requests模塊的兩大擴展 6.1 安裝requests-cache模塊 65 6.2 爬蟲緩存的應用 66 6.3 多功能requests-html模塊 68 6.3.1 發(fā)送網(wǎng)絡請求 68 6.3.2 提取數(shù)據(jù) 70 實例6.1 爬取即時新聞 70 6.3.3 獲取動態(tài)渲染的數(shù)據(jù) 73 實例6.2 獲取動態(tài)渲染的數(shù)據(jù) 73 6.4 綜合案例——爬取百度天氣 75 6.4.1 分析數(shù)據(jù) 75 6.4.2 實現(xiàn)爬蟲 76 6.5 實戰(zhàn)練習 77 第7章 正則表達式解析 7.1 通過search()匹配字符串 78 7.1.1 匹配指定開頭的字符串 79 實例7.1 搜索第一個以“mr_”開頭的字符串 79 7.1.2 可選匹配字符串中的內(nèi)容 79 實例7.2 可選匹配字符串中的內(nèi)容 79 7.1.3 使用“b”匹配字符串的邊界 80 實例7.3 使用“b”匹配字符串的邊界 80 7.2 通過findall()匹配字符串 80 7.2.1 匹配所有以指定字符開頭的字符串 81 實例7.4 匹配所有以“mr_”開頭的字符串 81 7.2.2 貪婪匹配法 81 實例7.5 使用“.*”實現(xiàn)貪婪匹配字符串 81 7.2.3 非貪婪匹配法 82 實例7.6 使用“.*?”實現(xiàn)非貪婪匹配字符串 82 7.3 處理字符串 83 7.3.1 使用sub()方法替換字符串 83 實例7.7 使用sub()方法替換字符串 83 7.3.2 使用split()方法分割字符串 84 實例7.8 使用split()方法分割字符串 84 7.4 綜合案例——爬取QQ音樂熱歌榜 85 7.4.1 分析數(shù)據(jù) 85 7.4.2 實現(xiàn)爬蟲 85 7.5 實戰(zhàn)練習 86 第8章 lxml解析模塊 8.1 了解XPath 87 8.2 XPath的基本操作 88 8.2.1 HTML的解析 88 實例8.1 解析本地的HTML文件 88 實例8.2 解析字符串類型的HTML代碼 88 實例8.3 解析服務器返回的HTML代碼 89 8.2.2 獲取所有標簽 90 實例8.4 獲取HTML代碼的所有標簽 90 8.2.3 獲取子標簽 91 實例8.5 獲取一個標簽中的子標簽 91 實例8.6 獲取子孫標簽 92 8.2.4 獲取父標簽 92 實例8.7 獲取一個標簽的父標簽 92 8.2.5 獲取文本 93 實例8.8 獲取HTML代碼中的文本 93 8.2.6 屬性匹配 94 實例8.9 使用“【@...】”實現(xiàn)標簽屬性的匹配 94 實例8.10 屬性多值匹配 94 實例8.11 一個標簽中多個屬性的匹配 95 8.2.7 獲取屬性值 96 實例8.12 獲取屬性所對應的值 96 實例8.13 使用索引按序獲取屬性對應的值 97 8.2.8 使用標簽軸獲取標簽內(nèi)容 98 實例8.14 使用標簽軸的方式獲取標簽內(nèi)容 98 8.3 綜合案例——爬取豆瓣新書速遞 99 8.3.1 分析數(shù)據(jù) 99 8.3.2 實現(xiàn)爬蟲 99 8.4 實戰(zhàn)練習 100 第9章 BeautifulSoup解析模塊 9.1 BeautifulSoup的基礎應用 101 9.1.1 安裝BeautifulSoup 101 9.1.2 解析器的區(qū)別 102 9.1.3 解析HTML 103 實例9.1 解析HTML代碼 103 9.2 獲取標簽內(nèi)容 103 9.2.1 獲取標簽對應的代碼 104 實例9.2 獲取標簽對應的代碼 104 9.2.2 獲取標簽屬性 105 實例9.3 獲取標簽屬性 105 9.2.3 獲取標簽內(nèi)的文本 106 9.2.4 嵌套獲取標簽內(nèi)容 106 實例9.4 嵌套獲取標簽內(nèi)容 106 9.2.5 關聯(lián)獲取 107 實例9.5 獲取子標簽 107 實例9.6 獲取子孫標簽 108 實例9.7 獲取父標簽 109 實例9.8 獲取兄弟標簽 109 9.3 利用方法獲取內(nèi)容 111 9.3.1 find_all()方法 111 實例9.9 find_all(name)通過標簽名稱獲取內(nèi)容 111 實例9.10 find_all(attrs)通過指定屬性獲取內(nèi)容 112 實例9.11 find_all(text)獲取標簽中的文本 112 9.3.2 find()方法 113 實例9.12 獲取第一個匹配的標簽內(nèi)容 113 9.3.3 其他方法 114 9.4 CSS選擇器 114 實例9.13 使用CSS選擇器獲取標簽內(nèi)容 115 9.5 綜合案例——爬取百度貼吧(熱議榜) 116 9.5.1 分析數(shù)據(jù) 116 9.5.2 實現(xiàn)爬蟲 116 9.6 實戰(zhàn)練習 117 第10章 爬取動態(tài)渲染的數(shù)據(jù) 10.1 selenium模塊 118 10.1.1 配置selenium環(huán)境 118 10.1.2 下載瀏覽器驅(qū)動 119 10.1.3 selenium的應用 119 實例10.1 獲取京東商品信息 119 10.1.4 selenium的常用方法 120 10.2 Splash服務 121 10.2.1 搭建Splash環(huán)境 122 10.2.2 Splash的API接口 123 實例10.2 獲取百度首頁logo圖片的鏈接 123 實例10.3 獲取百度首頁截圖 124 實例10.4 獲取請求頁面的json信息 125 10.2.3 自定義lua腳本 125 實例10.5 獲取百度渲染后的HTML代碼 125 10.3 綜合案例——爬取豆瓣閱讀(連載榜) 127 10.3.1 分析數(shù)據(jù) 127 10.3.2 實現(xiàn)爬蟲 128 10.4 實戰(zhàn)練習 128 第11章 數(shù)據(jù)清洗與文件存儲 11.1 使用pandas進行數(shù)據(jù)清洗 130 11.1.1 常見的兩種數(shù)據(jù)結(jié)構(gòu) 130 11.1.2 pandas數(shù)據(jù)的基本操作 134 11.1.3 處理NaN數(shù)據(jù) 138 11.1.4 重復數(shù)據(jù)的篩選 140 11.2 常見文件的基本操作 142 11.2.1 存取TXT文件 142 實例11.1 TXT文件存儲 143 實例11.2 讀取message.txt文件中的前9個字符 143 實例11.3 從文件的第14個字符開始讀取8個字符 144 實例11.4 讀取一行 144 實例11.5 讀取全部行 145 11.2.2 存取CSV文件 146 11.2.3 存取Excel文件 148 11.3 綜合案例——爬取豆瓣小組(討論精選) 148 11.3.1 分析數(shù)據(jù) 149 11.3.2 實現(xiàn)爬蟲 149 11.4 實戰(zhàn)練習 149 第12章 數(shù)據(jù)庫存儲 12.1 SQLite數(shù)據(jù)庫 151 12.1.1 創(chuàng)建數(shù)據(jù)庫文件 151 12.1.2 操作SQLite 152 12.2 MySQL數(shù)據(jù)庫 153 12.2.1 下載MySQL 153 12.2.2 安裝MySQL服務器 154 12.2.3 配置MySQL 158 12.2.4 安裝PyMySQL數(shù)據(jù)庫操作模塊 159 12.2.5 數(shù)據(jù)庫的連接 160 實例12.1 連接數(shù)據(jù)庫 160 12.2.6 數(shù)據(jù)表的創(chuàng)建 160 實例12.2 創(chuàng)建數(shù)據(jù)表 161 12.2.7 數(shù)據(jù)表的基本操作 161 實例12.3 操作數(shù)據(jù)表 161 12.3 綜合案例——爬取下廚房(家常菜單) 162 12.3.1 分析數(shù)據(jù) 162 12.3.2 實現(xiàn)爬蟲 162 12.4 實戰(zhàn)練習 164 第13章 App抓包 13.1 下載與安裝Charles抓包工具 165 13.2 PC端證書的安裝 167 13.3 設置SSL代理 169 13.4 網(wǎng)絡配置 169 13.5 手機證書的安裝 170 13.6 綜合案例——抓取手機微信新聞的地址 172 13.7 實戰(zhàn)練習 173 第14章 驗證碼識別 14.1 字符驗證碼 174 14.1.1 配置OCR 174 14.1.2 下載驗證碼圖片 175 實例14.1 下載驗證碼圖片 175 14.1.3 識別圖片驗證碼 176 實例14.2 識別圖片驗證碼 176 14.2 第三方驗證碼識別 178 實例14.3 第三方打碼平臺 178 14.3 滑動拼圖驗證碼 181 實例14.4 滑動拼圖驗證碼 181 14.4 綜合案例——識別隨機生成的驗證碼 182 14.5 實戰(zhàn)練習 183 第15章 Scrapy爬蟲框架的基本應用 15.1 了解Scrapy爬蟲框架 184 15.2 配置Scrapy爬蟲框架 185 15.2.1 使用Anaconda安裝Scrapy 185 15.2.2 Windows系統(tǒng)下配置Scrapy 186 15.3 Scrapy的基本用法 187 15.3.1 創(chuàng)建項目 187 15.3.2 創(chuàng)建爬蟲 188 實例15.1 爬取網(wǎng)頁代碼并保存HTML文件 188 15.3.3 提取數(shù)據(jù) 190 實例15.2 使用XPath表達式獲取多條信息 191 實例15.3 翻頁提取數(shù)據(jù) 191 實例15.4 包裝結(jié)構(gòu)化數(shù)據(jù) 192 15.4 綜合案例——爬取NBA得分排名 192 15.4.1 分析數(shù)據(jù) 193 15.4.2 實現(xiàn)爬蟲 193 15.5 實戰(zhàn)練習 194 第16章 Scrapy爬蟲框架的高級應用 16.1 編寫Item Pipeline 195 16.1.1 Item Pipeline的核心方法 195 16.1.2 將信息存儲到數(shù)據(jù)庫中 196 實例16.1 將京東數(shù)據(jù)存儲至數(shù)據(jù)庫 196 16.2 文件下載 199 實例16.2 下載京東外設商品圖片 200 16.3 自定義中間件 201 16.3.1 設置隨機請求頭 201 實例16.3 設置隨機請求頭 202 16.3.2 設置Cookies 203 實例16.4 通過Cookies模擬自動登錄 204 16.3.3 設置代理IP 205 實例16.5 隨機代理中間件 206 16.4 綜合案例——爬取NBA球員資料 207 16.4.1 分析數(shù)據(jù) 207 16.4.2 實現(xiàn)爬蟲 208 16.5 實戰(zhàn)練習 211 第2篇 實戰(zhàn)篇 第17章 基于正則表達式爬取編程e學網(wǎng)視頻(requests+re) 17.1 案例效果預覽 213 17.2 案例準備 214 17.3 業(yè)務流程 214 17.4 實現(xiàn)過程 214 17.4.1 查找視頻頁面 214 17.4.2 分析視頻地址 215 17.4.3 實現(xiàn)視頻下載 215 第18章 基于正則表達式爬取免費代理IP(requests+pandas+re+random) 18.1 案例效果預覽 217 18.2 案例準備 218 18.3 業(yè)務流程 218 18.4 實現(xiàn)過程 219 18.4.1 分析請求地址 219 18.4.2 確認數(shù)據(jù)所在位置 219 18.4.3 爬取代理IP并保存 220 18.4.4 檢測代理IP 221 第19章 基于beautifulsoup4爬取酷狗TOP500音樂榜單(requests+bs4+time+random) 19.1 案例效果預覽 224 19.2 案例準備 225 19.3 業(yè)務流程 225 19.4 實現(xiàn)過程 225 19.4.1 分析每頁的請求地址 225 19.4.2 分析信息所在標簽位置 226 19.4.3 編寫爬蟲代碼 227 第20章 基于beautifulsoup4爬取段子網(wǎng)(requests+beautifulsoup4+time+random) 20.1 案例效果預覽 229 20.2 案例準備 230 20.3 業(yè)務流程 230 20.4 實現(xiàn)過程 230 20.4.1 分析每頁請求地址 230 20.4.2 分析詳情頁請求地址 231 20.4.3 確認段子各種信息的HTML代碼位置 232 20.4.4 編寫爬蟲代碼 232 第21章 基于beautifulsoup4爬取汽車之家圖片(beautifulsoup4+Pillow+PyQt5+urllib) 21.1 案例效果預覽 234 21.2 案例準備 235 21.3 業(yè)務流程 235 21.4 實現(xiàn)過程 236 21.4.1 登錄窗體 236 21.4.2 設計主窗體 237 21.4.3 編寫爬蟲 237 21.4.4 啟動爬蟲 239 21.4.5 查看原圖 241 第22章 使用多進程爬取電影資源(requests+bs4+multiprocessing +re+time) 22.1 案例效果預覽 242 22.2 案例準備 242 22.3 業(yè)務流程 243 22.4 實現(xiàn)過程 243 22.4.1 分析請求地址 243 22.4.2 爬取電影詳情頁地址 244 22.4.3 爬取電影信息與下載地址 245 第23章 基于多進程實現(xiàn)二手房數(shù)據(jù)查詢(requests_html+pandas+matplotlib+multiprocessing) 23.1 案例效果預覽 248 23.2 案例準備 249 23.3 業(yè)務流程 249 23.4 實現(xiàn)過程 250 23.4.1 確認二手房數(shù)據(jù)位置 250 23.4.2 二手房數(shù)據(jù)的爬取 251 23.4.3 數(shù)據(jù)可視化顯示 253 第24章 基于動態(tài)渲染頁面爬取京東圖書銷量排行榜(requests_html+sqlite3+os) 24.1 案例效果預覽 256 24.2 案例準備 257 24.3 業(yè)務流程 257 24.4 實現(xiàn)過程 257 24.4.1 分析請求地址 257 24.4.2 確認數(shù)據(jù)在網(wǎng)頁HTML代碼中的位置 257 24.4.3 編寫爬蟲程序 258 第25章 爬取中關村在線中的手機數(shù)據(jù)(requests_html+pymysql+random+time) 25.1 案例效果預覽 260 25.2 案例準備 260 25.3 業(yè)務流程 261 25.4 實現(xiàn)過程 261 25.4.1 分析手機主頁中每頁地址 261 25.4.2 分析每個手機的詳情頁地址 262 25.4.3 確認詳情頁手機數(shù)據(jù)位置 262 25.4.4 創(chuàng)建MySQL數(shù)據(jù)表 262 25.4.5 編寫爬蟲程序 263 第26章 基于異步請求爬取北、上、廣、深租房信息(requests+lxml+pandas+aiohttp+asyncio) 26.1 案例效果預覽 267 26.2 案例準備 267 26.3 業(yè)務流程 268 26.4 實現(xiàn)過程 268 26.4.1 獲取租房信息總頁數(shù) 268 26.4.2 確認數(shù)據(jù)所在的HTML代碼位置 271 26.4.3 編寫爬蟲提取數(shù)據(jù) 272 第27章 基于XPath爬取豆瓣電影Top250(requests+lxml+time+random) 27.1 案例效果預覽 274 27.2 案例準備 275 27.3 業(yè)務流程 275 27.4 實現(xiàn)過程 275 27.4.1 分析請求地址 275 27.4.2 分析信息位置 276 27.4.3 爬蟲代碼的實現(xiàn) 277 第28章 分布式爬取新聞數(shù)據(jù)(scrapy+ pymysql+scrapy-redis正則表達式) 28.1 案例效果預覽 279 28.2 案例準備 280 28.3 業(yè)務流程 280 28.4 實現(xiàn)過程 280 28.4.1 Redis數(shù)據(jù)庫的安裝 280 28.4.2 安裝scrapy-redis模塊 281 28.4.3 分析請求地址 282 28.4.4 創(chuàng)建數(shù)據(jù)表(MySQL) 282 28.4.5 創(chuàng)建Scrapy項目 283 28.4.6 分布式爬蟲的啟動 286 第29章 微信智能機器人(Flask+小米球ngrok) 29.1 案例效果預覽 290 29.2 案例準備 291 29.3 業(yè)務流程 291 29.4 微信公眾平臺開發(fā)必備 291 29.4.1 注冊訂閱號 291 29.4.2 公眾號基本配置 292 29.5 內(nèi)網(wǎng)穿透工具 293 29.5.1 內(nèi)網(wǎng)穿透工具簡介 293 29.5.2 下載安裝 293 29.5.3 測試外網(wǎng)域名 294 29.6 爬取糗事百科笑話 295 29.6.1 頁面分析 295 29.6.2 隨機爬取一條笑話 295 29.7 爬取天氣信息 296 29.7.1 頁面分析 296 29.7.2 爬取天氣信息 297 29.8 微信智能機器人的實現(xiàn) 298 29.8.1 校驗簽名 298 29.8.2 填寫配置信息 299 29.8.3 接收文本消息 299 29.8.4 整合笑話和天氣功能 300 第3篇 強化篇 第30章 電商管家(PyQt5+pyqt5-tools+requests+pymysql+matplotlib) 30.1 系統(tǒng)需求分析 303 30.1.1 系統(tǒng)概述 303 30.1.2 系統(tǒng)可行性分析 304 30.1.3 系統(tǒng)用戶角色分配 304 30.1.4 功能性需求分析 304 30.1.5 非功能性需求分析 304 30.2 系統(tǒng)設計 304 30.2.1 系統(tǒng)功能結(jié)構(gòu) 304 30.2.2 系統(tǒng)業(yè)務流程 305 30.2.3 系統(tǒng)預覽 305 30.3 系統(tǒng)開發(fā)必備 306 30.3.1 開發(fā)工具準備 306 30.3.2 文件夾組織結(jié)構(gòu) 306 30.4 主窗體的UI設計 306 30.4.1 主窗體的布局 306 30.4.2 主窗體顯示效果 308 30.5 設計數(shù)據(jù)庫表結(jié)構(gòu) 308 30.6 爬取數(shù)據(jù) 309 30.6.1 獲取京東商品熱賣排行信息 309 30.6.2 獲取價格信息 313 30.6.3 獲取評價信息 314 30.6.4 定義數(shù)據(jù)庫操作文件 316 30.7 主窗體的數(shù)據(jù)展示 319 30.7.1 顯示前10名熱賣榜圖文信息 319 30.7.2 顯示關注商品列表 322 30.7.3 顯示商品分類比例餅圖 327 30.8 外設產(chǎn)品熱賣榜 330 30.9 商品預警 332 30.9.1 關注商品中、差評預警 332 30.9.2 關注商品價格變化預警 334 30.9.3 更新關注商品信息 336 30.10 系統(tǒng)功能 337 第31章 火車票智能分析工具(PyQt5+matplotlib +requests+json+sys+time)? 31.1 系統(tǒng)需求分析 339 31.1.1 系統(tǒng)概述 339 31.1.2 系統(tǒng)可行性分析 340 31.1.3 系統(tǒng)用戶角色分配 340 31.1.4 功能性需求分析 340 31.1.5 非功能性需求分析 340 31.2 系統(tǒng)設計 341 31.2.1 系統(tǒng)功能結(jié)構(gòu) 341 31.2.2 系統(tǒng)業(yè)務流程 341 31.2.3 系統(tǒng)預覽 341 31.3 系統(tǒng)開發(fā)必備 342 31.3.1 開發(fā)工具準備 342 31.3.2 文件夾組織結(jié)構(gòu) 342 31.4 主窗體的UI設計 343 31.4.1 主窗體的布局 343 31.4.2 主窗體顯示效果 347 31.5 爬取數(shù)據(jù) 347 31.5.1 獲取請求地址與參數(shù) 347 31.5.2 下載數(shù)據(jù)文件 348 31.5.3 查詢所有車票信息 352 31.5.4 臥鋪票的查詢與分析 354 31.5.5 查詢車票起售時間 356 31.6 主窗體的數(shù)據(jù)顯示 358 31.6.1 車票查詢區(qū)域的數(shù)據(jù)顯示 358 31.6.2 臥鋪售票分析區(qū)域的數(shù)據(jù)顯示 364 31.6.3 臥鋪車票數(shù)量走勢圖的顯示 366 31.6.4 查詢車票起售時間的數(shù)據(jù)顯示 369 附錄 附錄1 數(shù)據(jù)解析速查表 371 附錄2 PyCharm 常用快捷鍵 377 附錄3 PyCharm 常用設置 378
ISBN:978-7-122-40009-3
語種:漢文
開本:16
出版時間:2022-01-01
裝幀:平
頁數(shù):378