Python 網絡爬蟲開發從入門到精通, 2/e

劉延林,徐清徽

  • 出版商: 北京大學
  • 出版日期: 2025-03-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 360
  • 裝訂: 平裝
  • ISBN: 7301359497
  • ISBN-13: 9787301359495
  • 相關分類: Web-crawler 網路爬蟲
  • 下單後立即進貨 (約4週~6週)

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

商品描述

本書共分4篇,針對Python爬蟲初學者,從零開始系統性地講解如何利用Python進行網絡爬蟲程式開發。
第1篇快速入門篇(第1~9章):
本篇主要介紹了Python環境的建構與一些Python的基礎語法知識、Python爬蟲入門知識及基本的使用方法、
Ajax資料的分析與抓取、動態渲染頁面資料的爬取、網站代理的設定與使用、驗證碼的辨識與破解,
以及App資料抓取、資料的儲存方法等內容。
第2篇技能進階篇(第10~12章):
本篇主要介紹了PySpider和Scrapy兩個常用爬蟲框架的基本使用方法、爬蟲的部署方法,以及資料分析、資料清洗常用函式庫的使用方法。
第3篇項目實戰篇(第13章):
本篇以2個綜合實戰項目,詳細講解了Python資料爬蟲開始與實戰應用。本篇對全書內容進行了總結回顧,強化讀者的實操程度。
第4篇技能拓展篇(第14章):
本篇從資料爬取、資料清洗和資料分析三個角度,介紹了一常用AI技術的實用技巧。
運用這些技巧,讀者可以提高網絡爬蟲程式的編寫速度和資料分析效率。
本書案例豐富,註重實戰,既適合Python程式設計師和爬蟲愛好者閱讀學習,也適合作為廣大職業院校相關專業的教學用書。

目錄大綱

第 1 篇? 快速入門篇
第 1 章? Python 基礎
1.1 Python 環境搭建
1.1.1? Windows 下 Python 環境的安裝
1.1.2? Linux 下 Python 環境的安裝
1.1.3? macOS 下 Python 環境的安裝
1.1.4? IDE 開發工具介紹
1.2 Python 入門
1.2.1? 第一個 Python 程序
1.2.2? Python 註釋
1.2.3? 資料型別與變量
1.2.4? 字串和編碼
1.2.5? 列表
1.2.6? 元組
1.2.7? 字典
1.2.8? 集合
1.2.9? 條件語句
1.2.10? 循環語句
1.2.11? 函數
1.2.12? 類
1.2.13? 推導式
1.2.14? 賦值表達式
1.3 新手實訓
實踐一:使用 for 循環實作九九乘法表
實訓二:判斷閏年
實訓三:計算二次方程
1.4 新手問答
本章小結
第 2 章? Python 爬蟲入門 39
2.1 爬蟲的分類
2.1.1? 通用網絡爬蟲
2.1.2? 聚焦網絡爬蟲
2.1.3? 增量式網絡爬蟲
2.1.4? 深層網爬蟲
2.2 爬蟲的基本結構及工作流程
2.3 爬蟲策略
2.3.1? 深度優先遍歷策略
2.3.2? 寬度優先遍歷策略
2.3.3? 大站優先策略
2.3.4? 最佳優先搜尋策略
2.4 HTTP 基本原理
2.4.1? URI 和 URL 介紹
2.4.2? 超文本
2.4.3? HTTP 和 HTTPS
2.4.4? HTTP 請求過程.
2.5 網頁基礎
2.5.1? 網頁的組成
2.5.2? 網頁的結構
2.6 Session 和 Cookie
2.6.1? Session 和 Cookie 的工作原理
2.6.2? Session 和 Cookie 的區別
2.6.3? 常見誤區
2.7 新手實訓
實踐一:編寫網頁
實訓二:在網頁中插入標籤
2.8 新手問答
本章小結
第 3 章 基本函式庫的使用
3.1 urllib
3.1.1? urlopen()
3.1.2? 簡單抓取網頁
3.1.3? 設定請求逾時
3.1.4? 使用 data 參數提交數據
3.1.5? Request
3.1.6? 簡單使用 Request
3.1.7? Request 高階用法
3.1.8? 使用代理
3.1.9? 認證登入
3.1.10? Cookie 設定
3.1.11? HTTPResponse
3.1.12? 錯誤解析
3.2 requests
3.2.1? requests 函式庫的安裝
3.2.2? requests 函式庫的使用方法介紹
3.2.3? requests.get()
3.2.4? requests 函式庫的異常
3.2.5? request.head()
3.2.6? requests.post()
3.2.7? requests.put() 和 requests.patch()
3.3 re正規使用
3.3.1? re.match()
3.3.2? re.search()
3.3.3? re.match() 與 re.search() 的區別
3.3.4? 檢索與替換
3.3.5? re.compile()
3.3.6? findall()
3.4 XPath
3.4.1? XPath 的使用方法
3.4.2? 利用實​​例講解 XPath 的使用
3.4.3? 取得所有節點
3.4.4? 取得子節點
3.4.5? 獲取文本訊息
3.4.6? 透過Google瀏覽器取得 XPath 表達式
3.5 BeautifulSoup
3.5.1? BeautifulSoup 模組的安裝
3.5.2? 定位節點
3.5.3? 擷取數據
3.6 新手實訓
訓練一:requests 庫爬取豆瓣電影 Top250 頁面
訓練二:百度搜尋關鍵字提交
3.7 新手問答
本章小結
第 4 章? Ajax 資料抓取
4.1 Ajax 簡介
4.1.1? 實例引入
4.1.2? Ajax 的基本原理
4.1.3? Ajax 方法分析
4.2 使用 Python模擬Ajax請求數據
4.2.1? 分析請求
4.2.2? 分析反應結果
4.2.3? 編寫程式碼模擬抓取
4.3 新手訓練
實踐一:分析獵聘網的 xhr 請求並編寫程式碼模擬抓取數據
訓練二:分析南方航空官網的機票查詢 xhr 請求抓取數據
4.4 新手問答
本章小結
第 5 章 動態渲染頁面爬取
5.1 Selenium 的使用
5.1.1? 安裝 Selenium 庫
5.1.2? Selenium 定位方法
5.1.3? 控制瀏覽器操作
5.1.4? WebDriver 常用方法
5.1.5? 鼠標事件和鍵盤事件
5.1.6? 獲取斷言信息
5.1.7? 設定元素等待
5.1.8? 多表單切換
5.1.9? 下拉框選擇
5.1.10? 呼叫 JavaScript 程式碼
5.1.11? 視窗截圖
5.1.12? 無頭瀏覽模式
5.2 Playwright 的基本使用
5.2.1? Playwright 的安裝
5.2.2? Playwright 定位方法
5.2.3? Playwright 互動方法
5.3 新手實訓
訓練一:模擬登入豆瓣
訓練二:使用 Playwright 模擬百度搜索
5.4 新手問答
本章小結
第 6 章 代理的設定與使用
6.1 代理設置
6.1.1? urllib 代理設置
6.1.2? requests 代理設置
6.1.3? Selenium 代理設置
6.1.4? Playwright 代理設置
6.2 代理池構建
6.2.1? 取得 IP
6.2.2? 驗證代理是否可用
6.2.3? 使用代理池
6.3 付費代理的使用
6.3.1? 訊代理的使用
6.3.2? 快代理的使用
6.4 自建代理IP服務
6.4.1? ADSL 撥號原理
6.4.2? 購買 VPS 主機
6.4.3? 測試撥號
6.4.4? HTTP 協定代理搭建與測試
6.4.5? Socks 協定代理搭建與測試
6.4.6? 使用 Python 實現撥號
6.5 新手問答
本章小結
第 7 章 驗證碼的辨識與破解
7.1 普通圖形驗證碼識別
7.1.1? Python OCR 識別庫的安裝
7.1.2? 使用 OCR 辨識簡單的圖形驗證碼
7.1.3? 數值計算型的驗證碼破解
7.2 滑動驗證碼原理
7.2.1? 普通滑動驗證碼
7.2.2? 帶缺口的滑桿驗證碼
7.3 其他常見驗證碼介紹
7.4 新手問答
本章小結
第 8 章? App 資料抓取
8.1 Fiddler 的基本使用
8.1.1? Fiddler 設定
8.1.2? 手機端設置
8.1.3? 抓取今日頭條 App 請求包
8.2 Charles 基本使用
8.2.1? Charles 安裝
8.2.2? 證書設置
8.2.3? 手機端配置
8.2.4? 抓包
8.2.5? 分析
8.2.6? 重發
8.3 Appium 基本使用
8.3.1? Appium 安裝
8.3.2? 啟動 App
8.3.3? appPackage 和 appActivity 參數的取得方法
8.3.4? Python 程式碼驅動 App
8.3.5? 常用 API 方法
8.4 新手問答
本章小結
第 9 章 資料存儲
9.1 文件存儲
9.1.1? TEXT 檔案存儲
9.1.2? JSON 檔案存儲
9.1.3? CSV 檔案存儲
9.1.4? Excel 文件存儲
9.2 數據庫存儲
9.2.1? MySQL 存儲
9.2.2? MongoDB 存儲
9.2.3? Redis 存儲
9.2.4? PostgreSQL 存儲
9.3 新手實訓
訓練一:爬取雲端代理 IP 並儲存到 Redis 數據庫中
訓練二:爬取簡書文章清單資料儲存到 MySQL 數據庫中
9.4 新手問答
本章小結
第 2 篇? 技能進階
第 10 章 常用爬蟲框架
10.1 PySpider 框架
10.1.1? 安裝 PySpider
10.1.2? PySpider 的基本功能
10.1.3? PySpider 架構
10.1.4? 第一隻 PySpider 爬蟲
10.1.5? 將資料儲存到 MySQL 數據庫
10.2 Scrapy 框架
10.2.1? 安裝 Scrapy
10.2.2? 建立項目
10.2.3? 定義 Item
10.2.4? 寫第一個爬蟲(Spider)
10.2.5? 運行爬取
10.2.6? 提取 Item
10.2.7? 在 Shell 中嘗試 Selector 選擇器
10.2.8? 擷取數據
10.2.9? 使用 Item
10.2.10? Item Pipeline
10.2.11? 將 Item 寫入 JSON 文件
10.2.12? 將資料保存到數據庫
10.3 Scrapy-Splash 的使用
10.3.1? 新建項目
10.3.2? 配置
10.3.3? 編寫爬蟲
10.3.4? 運行爬蟲
10.4 新手訓練
實踐一:使用 Scrapy 爬取四川麻辣社區提取 標籤內容.
訓練二:使用 PySpider 爬取 IMDb 電影資料信息
10.5 新手問答
本章小結
第 11 章 部署爬蟲
11.1 Linux 系統下安裝 Python 3
11.1.1? 安裝 Python 3
11.1.2? 安裝 virtualenv
11.2 Docker 的使用
11.2.1? DockerHelloWorld
11.2.2? 運行交互式的容器
11.2.3? 啟動容器(後台模式)
11.2.4? 停止容器
11.3 Docker安裝Python
11.3.1? docker pull python:3.5
11.3.2? 透過 Dockerfile 構建
11.3.3? 使用 python 鏡像
11.4 Docker安裝MySQL
本章小結
第 12 章 資料分析與視覺化
12.1 NumPy 的使用
12.1.1? NumPy 安裝
12.1.2? NumPy ndarray 對象
12.1.3? NumPy 資料型
12.1.4? 數組屬性
12.1.5? NumPy 建立數組
12.1.6? NumPy 切片和索引
12.1.7? 數組的運算
12.1.8? NumPy Matplotlib
12.2 Pandas 的使用
12.2.1? 從 CSV 檔案讀取數據
12.2.2? 向 CSV 檔案中寫入數據
12.2.3? Pandas 資料幀
12.2.4? Pandas 函數應用
12.2.5? Pandas 排序
12.2.6? Pandas 聚合
12.2.7? Pandas 視覺化
12.3 pyecharts 的使用
12.3.1? 繪製第一個圖表
12.3.2? 使用主題
12.3.3? 使用 pyecharts-snapshot 插件
12.3.4? 圖形繪製過程
12.3.5? 多次顯示圖表
12.3.6? Pandas 或 Numpy 簡單範例
12.4 新手問答
本章小結
第 3 篇? 項目實戰篇
第 13 章 Python 爬蟲類專案實戰
13.1 實戰一:requests 爬取房天下二手房數據
13.1.1? 抓包分析
13.1.2? 編寫爬蟲程式碼
13.1.3? 分析二手房小區分佈
13.1.4? 實例總結
13.2 實戰二:Scrapy 爬取電商網站產品數據
13.2.1? 抓包分析
13.2.2? 編寫爬蟲程式碼
13.2.3? 分析新品價格區間分佈情形
13.2.4? 實例總結
本章小結
第 4 篇? 技能拓展篇
第 14 章? 巧用 AI 工具輔助資料爬取與分析
14.1 熟悉常用 AI 工具
14.1.1? 快速上手文心一言
14.1.2? 快速上手豆包
14.2 AI工具助力爬蟲技術
14.2.1? 快速學習爬蟲知識
14.2.2? 輔助編寫爬蟲程式碼
14.2.3? 輔助資料處理與視覺化分析
14.3 案例實戰:利用 AI 工具快速爬取與分析豆瓣電影數據
14.3.1? 利用豆包 AI 工具輔助編寫爬蟲程式碼
14.3.2? 利用豆包 AI 工具輔助資料分析與視覺化
本章小結