文章目錄
- 一、爬蟲基本原理
- 1、什么是爬蟲
- 2、爬蟲的分類
- 3、網址的構成
- 4、爬蟲的基本步驟
- 5、動態【異步】頁面和靜態【同步】頁面
- 6、請求頭
- 二、requests基本原理及使用
- 1、chrome 抓包按鈕詳解
- 1.1 Elements
- 1.2 元素定位器
- 1.3 Network
- 1.4 All
- 1.5 XHR
- 1.6 Preserve log
- 1.7 手機模式
- 1.8 清空數據包
- 1.9 Filter
- 1.10 Search
- 1.11 Search all file
- 2、requests介紹
- 2.1 概念
- 2.2 安裝方式
- 2.3 基本使用
- 2.4 response類對應的方法
- 2.4.1 獲取網頁源代碼:
- 2.4.2 獲取二進制數據【音樂,視頻,圖片】
- 2.4.3 獲取響應狀態碼【基本不用】
- 2.4.4 獲取json數據【常用】
- 2.5 headers的請求
一、爬蟲基本原理
1、什么是爬蟲
通俗: 解放人的雙手, 去互聯網獲取數據, 保存數據[數據庫, txt, excel, csv, pdf, 壓縮文件, image, video, music]
本質: 模擬瀏覽器, 向服務器發送網絡請求, 接受服務器返回的數據, 保存數據
2、爬蟲的分類
A、通用爬蟲: 百度, google, 搜狗 … 搜索引擎
B、聚焦爬蟲: 根據指定的目標, 獲取數據, 保存數據
3、網址的構成
例如:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=李智恩
A、協議部分:https / http – 超文本傳輸協議
B、域名部分:www.baidu.com – ip地址–<外殼>–域名【方便人的記憶】
C、路徑部分:一層一層的信息
D、參數部分:請求時候, 攜帶必要參數 – &符號鏈接
4、爬蟲的基本步驟
A、準備網址
B、請求網址
C、解析數據
D、保存數據
5、動態【異步】頁面和靜態【同步】頁面
A、打開瀏覽器
B、訪問網址
C、網頁空白處右鍵點擊,查看網頁源代碼
D、在網頁源代碼中搜索網頁所展示的部分(如果能搜到,則是靜態網頁;如果搜不到,則是動態網頁)
6、請求頭
A、cookies: 身份標識(登錄網站之后會有一段cookies值)
B、反爬字段: referer – 來源于哪個網站
C、瀏覽器標識: user-agent(用戶代理)
二、requests基本原理及使用
1、chrome 抓包按鈕詳解
1.1 Elements
網頁源代碼展示
1.2 元素定位器
使用元素定位器,可以準確定位網頁所展示的部分,對應的前端代碼
1.3 Network
網絡調試臺,可以用于抓包
1.4 All
使用All抓包時,會顯示所有的包
1.5 XHR
使用XHR抓包時,只會顯示AJAX包,也稱為動態數據包,一般用于抓取動態加載的數據
1.6 Preserve log
是否需要保存歷史抓包記錄,點亮后即為保存歷史記錄
1.7 手機模式
是否選擇手機模式,進行頁面訪問,一般用于手機抓包
1.8 清空數據包
將當前數據包進行清空,方便更準確的抓取數據包
1.9 Filter
過濾查詢,requests_headers
1.10 Search
搜索文本內容所在的包
1.11 Search all file
搜索文本內容所在的包
2、requests介紹
2.1 概念
非常強大的爬蟲請求庫, 解決日常90%爬蟲
2.2 安裝方式
pip install requests
2.3 基本使用
- 導包: import requests
- 使用: respone = requests.get(url, 反爬請求頭)
2.4 response類對應的方法
2.4.1 獲取網頁源代碼:
A、text
B、content.decode()
2.4.2 獲取二進制數據【音樂,視頻,圖片】
content
2.4.3 獲取響應狀態碼【基本不用】
response.status_code
200: 請求成功
2.4.4 獲取json數據【常用】
網站數據很多都是json數據, 做一件事情: json --> 字典
A、response = requests.get(url).textresponse = json.loads(response)
B、response = requests.get(url).json()
2.5 headers的請求
headers請求頭的作用是對爬蟲進行偽裝,headers的格式是字典,示例如下:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'}
其中添加的請求頭參數個數,可以根據實際需求添加