Python爬蟲實戰進階

Python爬蟲實戰進階

《Python爬蟲實戰進階》是2023年5月1日清華大學出版社出版的圖書,作者:李科均。

基本介紹

  • 中文名:Python爬蟲實戰進階
  • 作者:李科均
  • 出版時間:2023年5月1日
  • 出版社:清華大學出版社
  • ISBN:9787302627661
  • 定價:89 元
  • 印次:1-1
  • 印刷日期:2023.04.27
內容簡介,圖書目錄,

內容簡介

本書主要滿足網路爬蟲從業者提升技術能力的需求。本書共9章,涉及經典爬蟲框架Scrapy的架構、異步爬蟲的原理及其實現、異步自動化瀏覽器控制庫pyppeteer的使用、當下流行的反爬蟲原理及其處理方案、基於常用通信中間件的分散式爬蟲框架開發、Python常用的編碼和加密的套用、針對前端深入的JavaScript分析策略和安全策略、網路搜尋引擎的原理和技術實現,並在最後一章創建了一個垂直領域的搜尋引擎系統。 本書面向網路爬蟲開發的初、中級開發人員,以及對網路爬蟲有一定基礎的興趣愛好者。

圖書目錄

目錄
第1章Scrapy框架
1.1關於Scrapy
1.1.1Scrapy簡介
1.1.2Scrapy安裝
1.2Scrapy基礎
1.2.1Scrapy測試流程
1.2.2Scrapy開發流程
1.2.3Scrapy框架架構
1.2.4Request對象和Response對象
1.2.5HTML頁面解析
1.2.6HTML頁面泛解析
1.3爬蟲組件
1.3.1基礎爬蟲
1.3.2通用爬蟲
1.4中間件組件
1.4.1爬蟲中間件
1.4.2下載中間件
1.4.3隨機UserAgent中間件
1.4.4Selenium中間件
1.4.5pyppeteer中間件
1.5數據管道組件
1.5.1自定義Pipeline
1.5.2檔案下載Pipeline
1.5.3檔案下載案例
1.6數據導出器組件
1.6.1內置數據導出器
1.6.2自定義數據導出器
1.7分散式Scrapy
1.7.1分散式架構
1.7.2分散式通信佇列
1.7.3分散式爬蟲
1.7.4分散式調度
1.7.5分散式去重
1.7.6自定義去重組件
1.7.7基本開發流程
1.8Scrapy參考手冊
1.8.1常用命令
1.8.2常用配置項
1.9案例: 使用Scrapy獲取噹噹網商品信息
1.9.1項目需求
1.9.2項目分析
1.9.3編碼實現
1.9.4容器化部署
第2章異步爬蟲
2.1異步I/O與協程
2.1.1疊代器與生成器
2.1.2yield from關鍵字
2.1.3Python協程原理
2.2asyncio異步框架
2.2.1創建可等待對象
2.2.2運行asyncio程式
2.2.3asyncio結果回調
2.2.4asyncio並發和多執行緒
2.3異步請求和檔案操作
2.3.1aiohttp異步請求庫
2.3.2requests異步方案
2.3.3aiofiles異步檔案操作
2.4異步資料庫
2.4.1MySQL異步讀寫
2.4.2MongoDB異步讀寫
2.4.3Redis異步讀寫
2.5案例: 全流程異步爬蟲的運用
2.5.1案例需求
2.5.2案例分析
2.5.3編碼實現
第3章pyppeteer
3.1pyppeteer基礎
3.1.1pyppeteer簡介
3.1.2pyppeteer環境安裝
3.2pyppeteer的常用內部方法
3.2.1瀏覽器啟動器
3.2.2頁面常用操作
3.2.3頁面Cookie處理
3.2.4頁面節點選擇器
3.2.5鍵盤和滑鼠操作
3.2.6內嵌框處理
3.2.7JavaScript操作
3.2.8Request和Response
3.3pyppeteer常用操作
3.3.1啟動項參數設定
3.3.2識別特徵處理
3.3.3配置代理及認證
3.3.4攔截請求和回響
3.4案例: pyppeteer動態代理的切換
第4章反爬蟲
4.1設備指紋
4.1.1Canvas指紋
4.1.2WebGL指紋
4.1.3Font指紋
4.1.4AudioContext指紋
4.2滑動驗證
4.2.1滑動距離識別
4.2.2軌跡生成算法
4.2.3滑動驗證示例
4.3字型反爬蟲
4.3.1字型反爬蟲原理
4.3.2通用解決方案
4.3.3字型反爬蟲示例
4.4CSS樣式反爬蟲
4.4.1元素排序覆蓋
4.4.2雪碧圖拼湊
4.4.3選擇器插入
4.5動態渲染
4.5.1Ajax動態載入信息
4.5.2requestshtml渲染
4.5.3替Splash渲染方案
4.6圖片驗證碼
4.6.1驗證碼生成及驗證原理
4.6.2Tesseract 4環境部署
4.6.3二值化、去噪點和識別
4.6.4Tesseract 4樣本訓練
4.7IP限制
4.7.1代理技術原理及發展現狀
4.7.2全新分散式家庭代理
4.7.3零成本純淨測試IP
第5章分散式爬蟲系統的設計
5.1訊息系統的訊息傳遞模式
5.1.1發布訂閱模式
5.1.2點對點模式
5.1.3Redis發布訂閱框架
5.2基於RabbitMQ中間件的設計
5.2.1RabbitMQ基礎
5.2.2Docker部署RabbitMQ
5.2.3RabbitMQ可視化管理
5.2.4Python中使用RabbitMQ
5.3基於Kafka中間件的設計
5.3.1Kafka基礎
5.3.2docker部署Kafka集群
5.3.3Kafka可視化管理
5.3.4Python中使用Kafka
5.4基於Celery分散式框架的設計
5.4.1Celery基礎
5.4.2Celery的使用
5.4.3Celery可視化管理
5.4.4路由任務與定時任務
第6章編碼及加密
6.1編碼及轉換
6.1.1編碼與亂碼原理
6.1.2URL編碼轉換
6.1.3Bytes對象
6.1.4Base64編碼
6.2加密與解密
6.2.1概述
6.2.2DES與3DES
6.2.3AES加密
6.2.4RSA加密及簽名
6.2.5散列函式
第7章JavaScript安全分析
7.1JavaScript分析基礎
7.1.1瀏覽器開發者工具
7.1.2斷點及動態調試
7.1.3加密庫CryptoJS
7.1.4Python中運行JavaScript
7.2JavaScript入口定位
7.2.1全局搜尋
7.2.2事件記錄器
7.2.3油猴外掛程式Hook
7.3JavaScript防護
7.3.1域名鎖定
7.3.2源碼校驗
7.3.3防格式化
7.3.4滑鼠軌跡檢測
7.3.5控制臺檢測
7.3.6瀏覽器特徵檢測
7.3.7瀏覽器指紋檢測
7.3.8debugger反調試
7.4AST基礎
7.4.1抽象語法樹
7.4.2基於AST混淆策略
7.4.3Ob混淆工具
7.5Babel外掛程式開發
7.5.1Babel及模組
7.5.2解析與生成
7.5.3AST轉換
7.5.4節點類型
7.5.5節點與路徑
7.5.6作用域管理
7.6案例: Ob混淆還原
7.6.1編碼還原
7.6.2算術表達式還原
7.6.3長數組還原
7.6.4控制流還原
7.6.5逗號表達式還原
7.6.6一些細節處理
7.7獨立源碼運行
7.7.1運行環境監測
7.7.2構建window對象
7.7.3調用JavaScript代碼
7.7.4案例: 調用JavaScript源碼實現接口請求
第8章搜尋引擎技術
8.1搜尋引擎概述
8.1.1概述
8.1.2系統架構
8.1.3網路爬蟲
8.1.4倒排索引
8.2Elasticsearch引擎
8.2.1Elasticsearch簡介
8.2.2Elasticsearch集群部署
8.2.3索引管理
8.2.4插入文檔
8.2.5刪除文檔
8.2.6更新文檔
8.2.7文檔批處理
8.2.8文檔搜尋
8.2.9Python操作Elasticsearch
第9章項目: 創建搜尋引擎系統
9.1項目簡介
9.1.1項目概述
9.1.2環境準備
9.2搜尋引擎爬蟲
9.2.1分散式通用爬蟲
9.2.2修改配置試運行
9.2.3保存數據到Elasticsearch
9.2.4布隆過濾器去重
9.3前端互動
9.3.1前端頁面
9.3.2後端服務
9.3.3模板渲染
9.4項目部署
9.4.1基礎服務部署
9.4.2爬虫部署
附錄A參考資源網址

相關詞條

熱門詞條

聯絡我們