零基礎學Python網絡爬蟲(升級版)
明日科技
- 出版商: 電子工業
- 出版日期: 2024-05-01
- 售價: $594
- 貴賓價: 9.5 折 $564
- 語言: 簡體中文
- 頁數: 228
- ISBN: 7121477920
- ISBN-13: 9787121477928
-
相關分類:
Web-crawler 網路爬蟲
立即出貨 (庫存 < 4)
相關主題
商品描述
《零基礎學Python網絡爬蟲》(升級版)一書適用於 Python 爬蟲入門學習的讀者,書中全面介紹了使用 Python進行網絡爬蟲開發的入門必備知識,本書從學習與應用的角度出發,幫助讀者快速掌握網絡爬蟲的各項技能。全書共 17 章,包括初識網絡爬蟲、瞭解 Web 前端、多種網絡請求模塊、網頁數據的多種解析方式、爬取動態渲染的信息、多線程與多進程爬蟲、數據處理與存儲、App 抓包工具、識別驗證碼、Scrapy 爬蟲框架、Scrapy-Redis 分佈式爬蟲以及可視化爬蟲:數據偵探項目。本書側重爬蟲技術的實戰應用,包含典型應用示例、實用案例和項目,力求為讀者打造一本學習入門 + 應用 + 實踐一體化的精彩的 Python 網絡爬蟲圖書。
目錄大綱
第 1 章 初識網絡爬蟲
e 學碼:5 個
1.1 網絡爬蟲概述
1.2 網絡爬蟲的分類
1.3 網絡爬蟲的基本原理
1.4 Windows下搭建開發環境
1.4.1 安裝Anaconda
1.4.2 PyCharm的下載與安裝
1.4.3 配置PyCharm
1.4.4 測試PyCharm
第 2 章 請求模塊 Urllib
精彩實例:22 個 e 學碼:5 個
2.1 Urllib簡介
2.2 使用urlopen()方法發送請求
2.2.1 發送GET請求
? 實例2.1 演示常用的方法與屬性
2.2.2 發送POST請求
? 實例2.2 發送POST請求
2.2.3 設置網絡超時
? 實例2.3 處理網絡超時
2.3 復雜的網絡請求
2.3.1 設置請求頭
? 實例2.4 設置請求頭
2.3.2 Cookie的獲取與設置
? 實例2.5 模擬登錄
? 實例2.6 獲取Cookie
? 實例2.7 保存Cookie文件
? 實例2.8 使用Cookie信息登錄並獲取登錄後頁面中的信息
2.3.3 設置代理IP地址
? 實例2.9 設置代理IP地址
2.4 異常處理
? 實例2.10 處理URLError異常
? 實例2.11 使用HTTPError類捕獲異常
? 實例2.12 雙重異常的捕獲
2.5 解析鏈接
2.5.1 拆分URL
? 實例2.13 使用urlparse()方法拆分URL
? 實例2.14 使用urlsplit()方法拆分URL
2.5.2 組合URL
? 實例2.15 使用urlunparse()方法組合URL
? 實例2.16 使用urlunsplit()方法組合URL
2.5.3 連接URL
? 實例2.17 使用urljoin()方法連接URL
2.5.4 URL的編碼與解碼
? 實例2.18 使用urlencode()方法編碼請求
參數
? 實例2.19 使用quote()方法編碼字符串
參數
? 實例2.20 使用unquote()方法解碼請求
參數
2.5.5 URL參數的轉換
? 實例2.21 使用parse_qs()方法將參數轉換
為字典類型
? 實例2.22 使用parse_qsl()方法將參數轉換為元組所組成的列表
第 3 章 請求模塊 requests
精彩實例:13 個 e 學碼:6 個
3.1 請求方式
3.1.1 GET請求
? 實例3.1 實現不帶參數的GET網絡請求
3.1.2 對響應結果進行utf-8編碼
? 實例3.2 獲取請求地址所對應的網頁源碼
3.1.3 爬取二進制數據
? 實例3.3 下載某網站首頁中的logo圖片
3.1.4 GET(帶參)請求
3.1.5 POST請求
? 實例3.4 實現POST請求
3.2 復雜的網絡請求
3.2.1 添加請求頭
? 實例3.5 添加請求頭
3.2.2 驗證Cookie
? 實例3.6 通過驗證Cookie模擬網頁登錄
3.2.3 會話請求
? 實例3.7 實現會話請求
3.2.4 驗證請求
? 實例3.8 驗證請求
3.2.5 網絡超時與異常
? 實例3.9 演示網絡超時與異常
? 實例3.10 識別網絡異常的分類
3.2.6 上傳文件
? 實例3.11 上傳圖片文件
3.3 代理服務
3.3.1 代理的應用
? 實例3.12 通過代理發送請求
3.3.2 獲取免費的代理IP地址
3.3.3 檢測代理IP地址是否有效
? 實例3.13 檢測代理IP地址是否有效
第 4 章 高級網絡請求模塊
精彩實例:1 個 e 學碼:5 個
4.1 requests-cache的安裝與測試
4.2 緩存的應用
4.3 強大的requests-HTML模塊
4.3.1 使用requests-HTML實現網絡請求. 51 4.3.2 數據的提取
? 實例4.1 爬取即時新聞
第 5 章 正則表達式
精彩實例:8 個 e 學碼:2 個
5.1 使用search()方法匹配字符串
5.1.1 獲取第一個指定字符開頭的字符串
? 實例5.1 搜索第一個“mr_”開頭的字符串
5.1.2 可選匹配
? 實例5.2 可選匹配字符串中的內容
5.1.3 匹配字符串邊界
? 實例5.3 使用“b”匹配字符串的邊界
5.2 使用findall()方法匹配字符串
5.2.1 匹配所有指定字符開頭的字符串
? 實例5.4 匹配所有以“mr_”開頭的字符串
5.2.2 貪婪匹配
? 實例5.5 使用“.*”實現貪婪匹配字符串
5.2.3 非貪婪匹配
? 實例5.6 使用“.*?”實現非貪婪匹配字符串
5.3 字符串處理
5.3.1 替換字符串
? 實例5.7 使用sub()方法替換字符串
5.3.2 分割字符串
? 實例5.8 使用split()方法分割字符串.
5.4 案例:爬取某音樂熱歌榜
5.4.1 分析數據
5.4.2 實現爬蟲
第 6 章 XPath 解析
精彩實例:15 個 e 學碼:2 個
6.1 XPath概述
6.2 XPath的解析操作
6.2.1 解析HTML
? 實例6.1 解析本地的HTML文件
? 實例6.2 解析字符串類型的HTML代碼
? 實例6.3 解析服務器返回的HTML代碼
6.2.2 獲取所有節點
? 實例6.4 獲取HTML代碼的所有節點
6.2.3 獲取子節點
? 實例6.5 獲取一個節點中的子節點
? 實例6.6 獲取子孫節點
6.2.4 獲取父節點
? 實例6.7 獲取一個節點的父節點
6.2.5 獲取文本
? 實例6.8 獲取HTML代碼中的文本
6.2.6 屬性的單值匹配
? 實例6.9 使用“[@. ]”實現節點屬性的
匹配
? 實例6.10 屬性多值匹配
? 實例6.11 一個節點中多個屬性的匹配.
6.2.7 獲取屬性
? 實例6.12 獲取屬性所對應的值
6.2.8 按序獲取屬性值
? 實例6.13 使用索引按序獲取屬性對應的值
6.2.9 使用節點軸獲取節點內容
? 實例6.14 使用節點軸的方式獲取節點內容
6.3 案例:爬取某網站電影Top250
6.3.1 分析請求地址
6.3.2 分析信息位置
6.3.3 爬蟲代碼的實現
? 實例6.15 編寫爬取某網站電影
Top250的代碼
第 7 章 解析數據的 Beautiful Soup 模塊82
精彩實例:13 個 e 學碼:3 個
7.1 使用Beautiful Soup解析數據
7.1.1 Beautiful Soup的安裝
7.1.2 解析器
7.1.3 Beautiful Soup的簡單應用
? 實例7.1 解析HTML代碼
7.2 獲取節點內容
7.2.1 獲取節點對應的代碼
? 實例7.2 獲取節點對應的代碼
7.2.2 獲取節點屬性
? 實例7.3 獲取節點屬性
7.2.3 獲取節點包含的文本內容
7.2.4 嵌套獲取節點內容
? 實例7.4 嵌套獲取節點內容
7.2.5 關聯獲取
? 實例7.5 獲取子節點
? 實例7.6 獲取子孫節點
? 實例7.7 獲取父節點
? 實例7.8 獲取兄弟節點
7.3 使用方法獲取內容
7.3.1 find_all()方法——獲取所有符合
條件的內容
? 實例7.9 find_all(name)方法通過節點名稱獲取內容
? 實例7.10 find_all(attrs)方法通過指定屬性獲取內容
? 實例7.11 find_all(text)方法獲取節點中的文本
7.3.2 find()方法——獲取第一個匹配的節點內容
? 實例7.12 獲取第一個匹配的節點內容
7.3.3 其他方法
7.4 CSS選擇器
? 實例7.13 使用CSS選擇器獲取節點內容 97
第 8 章 多線程與多進程爬蟲
精彩實例:11 個 e 學碼:6 個
8.1 進程與線程
8.1.1 什麽是進程
8.1.2 什麽是線程
8.2 創建線程
8.2.1 使用threading模塊創建線程
? 實例8.1 使用threading模塊創建線程
8.2.2 使用Thread子類創建線程
? 實例8.2 使用Thread子類創建線程
8.3 線程間通信
? 實例8.3 驗證線程之間是否可以共享信息
8.3.1 什麽是互斥鎖
8.3.2 使用互斥鎖
? 實例8.4 使用多線程的互斥鎖
8.3.3 使用Queue在線程間通信
? 實例8.5 使用Queue在線程間通信
8.4 創建進程的常用方式
8.4.1 使用multiprocessing模塊創建進程
? 實例8.6 演示Process類的方法和屬性的使用
8.4.2 使用Process子類創建進程
? 實例8.7 使用Process子類創建多個進程
8.4.3 使用Pool進程池創建進程
? 實例8.8 使用進程池創建多進程
8.5 進程間通信
? 實例8.9 驗證進程之間能否直接共享信息
8.5.1 隊列簡介
8.5.2 多進程隊列的使用
? 實例8.10 多進程隊列的使用
8.5.3 使用隊列在進程間通信
? 實例8.11 使用隊列在進程間通信
第 9 章 數據處理與存儲
精彩實例:8 個 e 學碼:7 個
9.1 數據處理
9.1.1 pandas數據結構
9.1.2 數據的增、刪、改、查
9.1.3 NaN數據處理
9.1.4 刪除重復數據
9.2 文件的存取
9.2.1 TXT基本文件操作
? 實例9.1 TXT文件存儲
? 實例9.2 讀取message.txt文件中的
前9個字符
? 實例9.3 從文件的第11個字符開始
讀取8個字符
? 實例9.4 讀取一行
? 實例9.5 讀取全部行
9.2.2 存取CSV文件
9.2.3 存取Excel文件
9.3 SQLite數據庫
9.3.1 創建數據庫文件
9.3.2 操作SQLite
9.4 MySQL數據庫
9.4.2 安裝MySQL服務器
? 實例9.6 連接數據庫
? 實例9.7 創建數據表
? 實例9.8 操作數據表
第 10 章 App 抓包工具
e 學碼:6 個
10.1 Charles工具的下載與安裝
10.2 SSL證書的安裝
10.2.1 安裝PC端證書
10.2.2 設置代理
10.2.3 配置網絡
10.2.4 安裝手機端證書
第 11 章 識別驗證碼
精彩實例:4 個 e 學碼:5 個
11.1 字符驗證碼
11.1.1 搭建OCR環境
11.1.2 下載驗證碼圖片
? 實例11.1 下載驗證碼圖片
11.1.3 識別驗證碼
? 實例11.2 識別驗證碼
11.2 第三方驗證碼識別
? 實例11.3 第三方打碼平臺
11.3 滑動拼圖驗證碼
? 實例11.4 滑動拼圖驗證碼
第 12 章 Scrapy 爬蟲框架
精彩實例:8 個 e 學碼:8 個
12.1 瞭解Scrapy爬蟲框架
12.2 Scrapy的基本應用
12.2.1 創建Scrapy項目
12.2.2 創建爬蟲
? 實例12.1 爬取網頁代碼並保存HTML
文件
12.2.3 獲取數據
? 實例12.2 使用XPath表達式獲取多條信息
? 實例12.3 翻頁提取數據
? 實例12.4 包裝結構化數據
12.2.4 將爬取的數據保存為多種格式的
文件
12.3 編寫Item Pipeline
12.3.1 Item Pipeline的核心方法
12.3.2 將信息存儲到數據庫
? 實例12.5 將數據存儲到數據庫
12.4 自定義中間件
12.4.1 設置隨機請求頭
? 實例12.6 設置隨機請求頭
12.4.2 設置Cookie
12.4.3 設置代理IP地址
? 實例12.7 隨機代理中間件
12.5 文件下載
? 實例12.8 下載手機商品圖片
第 13 章 爬取編程 e 學網視頻
精彩實例:8 個 e 學碼:8 個
13.1 案例效果預覽
13.2 案例準備
13.3 業務流程
13.4 實現過程
13.4.1 查找視頻頁面
13.4.2 分析視頻地址
13.4.3 實現視頻下載
第 14 章 爬取某網站的手機數據
14.1 案例效果預覽
14.2 案例準備
14.3 業務流程
14.4 實現過程
14.4.1 分析手機主頁中的每頁地址
14.4.2 分析每個手機的詳情頁地址
14.4.3 確認詳情頁手機數據的位置
14.4.4 創建MySQL數據表
14.4.5 編寫爬蟲程序
第 15 章 爬取北、上、廣、深租房信息
15.1 案例效果預覽
15.2 案例準備
15.3 業務流程
15.4 實現過程
15.4.1 獲取租房信息總頁碼
15.4.2 確認數據所在的標簽位置
15.4.3 編寫爬蟲程序提取數據