Python爬蟲實戰基礎

Python爬蟲實戰基礎

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

基本介紹

  • 中文名:Python爬蟲實戰基礎
  • 作者:李科均
  • 出版時間:2023年6月1日
  • 出版社:清華大學出版社
  • ISBN:9787302626565
  • 定價:109 元
  • 印次:1-1
  • 印刷日期:2023.05.10
內容簡介,圖書目錄,

內容簡介

本書介紹Python網路爬蟲開發從業者應掌握的基礎技能。本書以網路爬蟲為核心,涉及大大小小數十個能力體系。本書的前半部分介紹爬蟲開發的基礎知識,包括爬蟲開發必備的環境搭建方法、開發中常用工具的使用方法和技巧、網頁的構成原理和網頁信息提取的方法、常用資料庫的使用方法和套用場景,如通過Redis內置的布隆過濾器實現大規模URL地址的去重任務。本書的後半部分主要講解網路爬蟲開發所需的必要能力,包括網路通信的底層原理、背後涉及的網際網路協定標準及如何對這些協定進行分析並加以利用,使用Docker部署網路爬蟲所需的環境和爬蟲項目的打包部署,使用網路爬蟲的核心請求庫實現與伺服器端和客戶端的通信和互動,使用自動化神器Selenium對複雜的爬蟲需求進行快速實現,以及網路爬蟲的多任務開發,重點是通過多執行緒和多進程來提高爬蟲效率。
本書面向準備從事或正在從事網路爬蟲開發的從業者以及對網路爬蟲有濃厚興趣的愛好者。

圖書目錄

目錄
第1章基礎開發環境
1.1Docker環境的搭建
1.1.1安裝Docker
1.1.2用Docker安裝MySQL
1.1.3用Docker安裝Redis
1.1.4用Docker安裝MongoDB
1.1.5用Docker安裝Selenium Grid
1.2Python的開發環境
1.2.1Python的優點、缺點
1.2.2Python解釋器
1.2.3Python IDE
1.3JavaScript的運行環境
1.4輔助工具的安裝
1.4.1安裝Git
1.4.2安裝ADB驅動
1.4.3安裝Fiddler
1.4.4安裝Postman
1.4.5XPath測試外掛程式
第2章HTML頁面的信息提取
2.1HTML頁面解析概述
2.1.1HTML頁面的構成原理
2.1.2Python提取HTML頁面信息的方式
2.2XPath提取HTML頁面信息
2.2.1XPath基礎
2.2.2XPath教程
2.2.3XPath技巧
2.3正則表達式
2.3.1基本語法
2.3.2表達式全集
2.3.3表達式字元組、優先權
2.3.4表達式的分組與引用
2.3.5Python re模組
2.4案例
2.4.1正則校驗公民身份號碼的合法性
2.4.2下載微信文章及其靜態資源
第3章日誌模組
3.1日誌基礎
3.1.1套用場景及重要性
3.1.2日誌的使用
3.2四大組件之Logger(記錄器)
3.2.1Logger的作用
3.2.2Logger的屬性和方法
3.2.3Logger的常用配置方法
3.2.4案例: 為日誌記錄器添加自定義過濾器
3.3四大組件之Handler(處理器)
3.3.1Handle的作用
3.3.2Handle的屬性和方法
3.3.3Handle的常用方法
3.3.4內置Handler類型及功能
3.3.5案例一: 將日誌寫入磁碟檔案
3.3.6案例二: 將日誌檔案按時間分割
3.3.7案例三: 將日誌檔案按大小分割
3.3.8案例四: 給指定信箱傳送日誌訊息
3.3.9案例五: Web日誌伺服器的傳參、認證和調用
3.4四大組件之Formatter(格式化器)
3.4.1Formatter的屬性和方法
3.4.2可選格式化欄位
3.5四大組件之Filters(過濾器)
3.5.1Filters的屬性和方法
3.5.2自定義Filters
3.6LogRecord對象
3.6.1LogRecord的屬性和方法
3.6.2構造LogRecord實例化對象
3.6.3案例: Web日誌伺服器恢復LogRecord對象
3.7日誌的配置
3.7.1顯式配置
3.7.2通過fileConfig配置
3.7.3通過dictConfig配置
第4章資料庫操作
4.1通過ORM模型操作MySQL
4.1.1什麼是ORM模型
4.1.2SQLAlchemy是什麼
4.1.3SQLAlchemy基礎
4.1.4資料庫引擎配置
4.1.5創建會話
4.1.6創建聲明性類
4.1.7定義數據列及類型
4.1.8增、改、查、刪
4.1.9ORM事務操作
4.1.10常用關係表的創建
4.1.11關係表數據的插入
4.1.12連線查詢
4.1.13關係表數據的刪除
4.2MongoDB資料庫
4.2.1MongoDB基礎
4.2.2MongoDB文檔的增、刪、改
4.2.3MongoDB文檔查詢
4.2.4MongoDB的聚合
4.2.5MongoDB索引操作
4.2.6MongoDB的複製
4.2.7MongoDB的備份與恢復
4.2.8Python與MongoDB互動
4.3Redis操作
4.3.1Redis基礎
4.3.2Python操作Redis的流程
4.3.3Python中常用的Redis命令
4.3.4Python中使用Redis去重
4.3.5Redis內置布隆過濾器
4.3.6使用Redis作訊息佇列
4.3.7打造Redis發布訂閱框架
第5章機制與協定
5.1TCP/IP協定簇
5.1.1網際網路協定套件
5.1.2TCP/IP協定簇的組成
5.1.3TCP/IP參考模型
5.2TCP與UDP協定
5.2.1socket通信
5.2.2UDP協定
5.2.3TCP協定
5.2.4TCP的三次握手
5.2.5TCP的四次揮手
5.2.6TCP長連線
5.3HTTP與HTTPS協定
5.3.1HTTP協定的實現
5.3.2使用socket實現HTTP協定伺服器
5.3.3HTTPS協定的實現
5.3.4關於TLS與SSL協定
5.3.5一次爬蟲請求的過程
5.3.6HTTP回響狀態碼
5.3.7HTTP請求頭與回響頭
5.4WebSocket協定
5.4.1協定內容
5.4.2Python連線WebSocket
5.4.3案例: 虛擬貨幣實時價格爬蟲
5.5SMTP協定與IMAP協定
5.5.1SMTP協定
5.5.2IMAP協定
5.5.3Python使用SMTP關鍵接口
5.5.4Python使用IMAP關鍵接口
5.5.5案例一: 傳送HTML格式的郵件
5.5.6案例二: 傳送帶附屬檔案的郵件
5.5.7案例三: 傳送顯示圖片的HTML格式的郵件
5.5.8案例四: 自動讀取信箱驗證碼
5.6Robots協定
5.7安全與會話機制
5.7.1CSRF攻擊與保護
5.7.2CSRF驗證過程
5.7.3Cookie機制
5.7.4會話
5.7.5Token與JWT
5.7.6案例: 獲取本地Chrome瀏覽器中的任意Cookie信息
第6章工具教程
6.1Fiddler高級抓包教程
6.1.1Fiddler的基礎功能
6.1.2抓取HTTPS請求
6.1.3Fiddler的過濾規則
6.1.4Fiddler斷點調試
6.1.5Fiddler手機抓包
6.1.6App的防抓包措施
6.1.7安卓系統模擬器抓包
6.1.8一鍵生成Python代碼
6.1.9自定義請求回響規則
6.1.10回響數據轉髮腳本
6.1.11Fiddler腳本開發
6.2Postman高級教程
6.2.1Postman的基礎
6.2.2設定Postman變數
6.2.3編寫動態變數邏輯
6.2.4Postman Cookie管理
6.2.5請求及回響相關功能
6.2.6生成Python代碼
6.3PyCharm的高級功能
6.3.1PyCharm斷點調試
6.3.2SFTP同步代碼到伺服器
6.3.3使用遠程解釋器環境
6.3.4調試JavaScript代碼
6.3.5PyCharm的常用快捷鍵
6.3.6PyCharm資料庫管理
6.3.7智慧型補全外掛程式aiXcode
6.3.8PyCharm中使用Git版本管理
6.4Git教程
6.4.1Git管理模型
6.4.2倉庫基礎操作
6.4.3Git分支的管理
6.4.4Git標籤的使用
6.4.5Git團隊協作流程
6.4.6案例: 用GitHub完成團隊協作
第7章Docker教程
7.1Docker的服務架構
7.1.1什麼是Docker
7.1.2Docker架構模型
7.2Docker基礎
7.2.1容器的套用
7.2.2鏡像的套用
7.3Docker數據與網路
7.3.1數據共享與持久化
7.3.2Docker的網路模式
7.4Dockerfile的實踐
7.4.1一般準則和建議
7.4.2Dockerfile指令
7.4.3多階段構建
7.4.4案例: 從Python 3解釋器到項目代碼的構建
7.5Docker倉庫管理
7.5.1使用官方倉庫Docker Hub
7.5.2搭建私有倉庫Registry
7.5.3搭建企業級倉庫Harbor
7.6Docker Compose的容器編排
7.6.1YAML檔案格式基礎
7.6.2Compose的安裝與卸載
7.6.3常用的yml配置指令
7.6.4常用的Compose 命令
7.6.5Compose編排案例
7.7案例: 容器化部署爬蟲項目
第8章requests教程
8.1requests基礎
8.1.1requests的環境
8.1.2requests的簡介
8.2Request
8.2.1Request的流程
8.2.2Request的接口
8.2.3Request控制訪問參數
8.3Response
8.3.1Response對象的屬性
8.3.2Response對象的方法
8.3.3回響內容
8.3.4逾時、錯誤與異常
8.4實用函式工具
8.4.1URL處理方法
8.4.2獲取字元串編碼
8.4.3獲取headers中的編碼
8.4.4獲取環境變數中的代理
8.4.5提取URL中的認證信息
8.5requests的高級用法
8.5.1會話對象
8.5.2Cookie對象
8.5.3SSL校驗
8.5.4代理請求
8.5.5檔案上傳
8.5.6身份認證
8.6案例: POST登錄與信箱驗證
8.6.1登錄請求流程分析
8.6.2用POST登錄獲取會話
第9章Selenium教程
9.1Selenium基礎
9.1.1關於Selenium
9.1.2Selenium及驅動安裝
9.2瀏覽器的啟動
9.2.1啟動本地瀏覽器
9.2.2啟動遠程分散式瀏覽器
9.2.3啟動項參數配置
9.3Selenium常用的API
9.3.1常用瀏覽器的操作接口
9.3.2元素對象WebElement
9.3.3鍵入操作與選擇操作
9.3.4行為鏈ActionChains
9.3.5頁面的Cookie處理
9.3.6內嵌框處理
9.3.7JavaScript事件
9.3.8逾時問題的處理
9.4Selenium的常用操作
9.4.1識別特徵處理
9.4.2配置認證代理
9.4.3回響攔截操作
9.4.4控制安卓系統上的Chrome瀏覽器
9.5案例: Selenium登錄、滑動驗證、Session請求
9.5.1需求分析
9.5.2實現流程
9.5.3編碼實現
第10章多任務爬蟲開發
10.1多進程
10.1.1Process類創建進程
10.1.2Process子類創建進程
10.1.3進程池
10.1.4多進程間通信
10.2多執行緒
10.2.1創建多執行緒
10.2.2鎖對象與死鎖
10.2.3全局解釋器鎖
10.3案例: 多執行緒圖片下載爬蟲
10.3.1案例分析
10.3.2編碼實現
附錄參考資源網址

相關詞條

熱門詞條

聯絡我們