Python爬蟲開發者工具介紹
前言
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯繫我們以作處理。
chrome 開發者工具
當我們爬取不同的網站時,每個網站頁面的實現方式各不相同,我們需要對每個網站都進行分析。那是否有一些通用的分析方法?我分享下自己爬取分析的「套路」。在某個網站上,分析頁面以及抓取數據,我用得最多的工具是 Chrome 開發者工具。
Chrome 開發者工具是一套內置於 Google Chrome 中的 Web 開發和調試工具,可用來對網站進行迭代、調試和分析。因為中國很多瀏覽器內核都是基於 Chrome 內核,所以國產瀏覽器也帶有這個功能。例如:UC 瀏覽器、QQ 瀏覽器、360 瀏覽器等。
接下來,我們來看看 Chrome 開發者工具一些比較牛逼的功能。
元素麵板
通過元素(Element)面板,我們能查看到想抓取頁面渲染內容所在的標籤、使用什麼 CSS 屬性(例如:class=「middle」)等內容。例如我想要抓取我知乎主頁中的動態標題,在網頁頁面所在處上右擊滑鼠,選擇「檢查」,可進入 Chrome 開發者工具的元素麵板。
通過這種方法,我們能快速定位出頁面某個 DOM 節點,然後可以提取出相關的解析語句。滑鼠移動到節點,然後右擊滑鼠,選擇 「Copy」,能快速複製出 Xpath 、CSS elector 等內容解析庫的解析語句。
網路面板
網路(Network)面板記錄頁面上每個網路操作的相關資訊,包括詳細的耗時數據、HTTP 請求與響應標頭和 Cookie,等等。這就是我們通常說的抓包。
其中的 Filters 窗格,我經常使用其來過濾出一些 HTTP 請求,例如過濾出使用 Ajax 發起的非同步請求、圖片、影片等。
最大的窗格叫 Requests Table,此表格會列出了檢索的每一個 HTTP 請求。默認情況下,此表格按時間順序排序,最早的資源在頂部。點擊資源的名稱可以顯示更多資訊。
Requests Table參數:
all:所有請求數據(圖片、影片、音頻、js程式碼、css程式碼)
XHR:XMLHttpRequest 的縮寫,是ajax技術的核心,動態載入完成經常分析的一個內容
CSS: css樣式文件
JS:JavaScript文件,js解密是常分析的一個頁面
Img: Images 圖片文件
Font: 字體文件(字體反扒)
DOC : Document,文檔內容
WS: WebSocket,web端的socket數據通訊,一般用於一些實時更新的數據
Requests詳情:
請求頭
Headers 是顯示 HTTP 請求的 Headers,我們通過這個能看到請求的方式,以及攜帶的請求參數等。
- GeneralRequest url :實際請求的網址Request Method: 請求方法Status Code: 狀態碼,成功時為 200
- Response Headers伺服器返回時設置的一些數據,例如伺服器更新的cookie數據最新是在這裡出現修改
- Requests Headers請求體,請求不到數據的原因一般出在這裡。反扒也是反扒請求體裡面的數據Accept:伺服器接收的數據格式(一般忽略)Accept-Encoding: 伺服器接收的編碼(一般忽略)Accept-Language: 伺服器接收的語言(一般忽略)Connection: 保持連接(一般忽略)Cookies: cookies資訊,是身份資訊,爬取VIP資源是需要攜帶身份資訊Host: 請求的主機地址User-Agent: 用戶身份代理,伺服器根據這個判斷用戶的大概資訊Sec-xxx-xxx: 其他資訊,可能沒用,可能是反扒。具體情況具體分析
預覽
Preview 是請求結果的預覽。一般用來查看請求到的圖片,對於抓取圖片網站比較給力。
響應體
Response 是請求返回的結果。一般的內容是整個網站的源程式碼。如果該請求是非同步請求,返回的結果內容一般是 Json 文本數據。
此數據與瀏覽器展示的網頁可能不一致,因為瀏覽器是動態載入的
工具欄
Clear
清空所有數據,每一次重新分析時都需要清空之前的數據
Search
搜索框,只要在 ALL 裡面出現的過的內容,就可以被直接搜索到。常用與數據檢索與 JS 解密
Preserve log
保留日誌。當分析在多個頁面跳轉的內容時,一定要勾上,不然當頁面發生新的跳轉時,歷史數據全部都會被清空。
Disable cache
清空 JavaScript、css 文件的快取,獲取最新的。
保留日誌,做爬蟲是一定需要勾上
HTTP 傳輸
//mp.weixin.qq.com/s/aSwXVrz47lAvQ4k0o4VcZg