Python爬蟲(chóng)谷歌Chrome F12抓包過(guò)程原理解析
瀏覽器打開(kāi)網(wǎng)頁(yè)的過(guò)程就是爬蟲(chóng)獲取數(shù)據(jù)的過(guò)程,兩者是一樣一樣的。瀏覽器渲染的網(wǎng)頁(yè)是豐富多彩的數(shù)據(jù)集合,而爬蟲(chóng)得到的是網(wǎng)頁(yè)的源代碼htm有時(shí)候,我們不能在網(wǎng)頁(yè)的html代碼里面找到想要的數(shù)據(jù),但是瀏覽器打開(kāi)的網(wǎng)頁(yè)上面卻有這些數(shù)據(jù)。這就是瀏覽器通過(guò)ajax技術(shù)異步加載(偷偷下載)了這些數(shù)據(jù)。
大家禁不住要問(wèn):那么該如何看到瀏覽器偷偷下載的那些數(shù)據(jù)呢?
答案就是谷歌Chrome瀏覽器的F12快捷鍵,也可以通過(guò)鼠標(biāo)右鍵菜單“檢查”(Inspect)打開(kāi)Chrome自帶的開(kāi)發(fā)者工具,開(kāi)發(fā)者工具會(huì)出現(xiàn)在瀏覽器網(wǎng)頁(yè)的左側(cè)或者是下面(可調(diào)整),它的樣子就是這樣的:
讓我們簡(jiǎn)單了解一下它如何使用:
谷歌Chrome抓包:1. 最上面一行菜單
左上角箭頭 用來(lái)點(diǎn)擊查看網(wǎng)頁(yè)的元素
第二個(gè)手機(jī)、平板圖標(biāo)是用來(lái)模擬移動(dòng)端顯示網(wǎng)頁(yè)
Elements 查看渲染后的網(wǎng)頁(yè)標(biāo)簽元素
提醒 是渲染后(包括異步加載的圖片、數(shù)據(jù)等)的完整網(wǎng)頁(yè)的html,不是最初下載的那個(gè)html。
Console 查看JavaScript的console log信息,寫網(wǎng)頁(yè)時(shí)比較有用
Sources 顯示網(wǎng)頁(yè)源碼、CSS、JavaScript代碼
Network 查看所有加載的請(qǐng)求,對(duì)爬蟲(chóng)很有幫助
后面的暫且不管。
谷歌Chrome抓包:2. 重要區(qū)域
圖中紅框的兩個(gè)按鈕比較有用,編號(hào)為2的是清空請(qǐng)求記錄;編號(hào)3的是保持記錄,這在網(wǎng)頁(yè)有重定向的時(shí)候很有用
圖中綠色區(qū)域就是加載完整個(gè)網(wǎng)頁(yè),瀏覽器的全部請(qǐng)求記錄,包括網(wǎng)址、狀態(tài)、類型等。寫爬蟲(chóng)時(shí),我們就要在這里尋找線索,提煉金礦。
最下面編號(hào)為4的紅框顯示了加載這個(gè)網(wǎng)頁(yè),一共請(qǐng)求了181次,數(shù)量是多么地驚人,讓人不禁心疼七瀏覽器來(lái)。
點(diǎn)擊一條請(qǐng)求的網(wǎng)址,右側(cè)就會(huì)出現(xiàn)新的窗口顯示該條請(qǐng)求的相信信息:
圖中左邊紅框就是點(diǎn)擊的請(qǐng)求網(wǎng)址;綠框就是詳情窗口。
詳情窗口包括,Headers(請(qǐng)求頭)、Preview(預(yù)覽響應(yīng))、Response(服務(wù)器響應(yīng)內(nèi)容)和Timing(耗時(shí))。
Preview、Response 幫助我們查看該條請(qǐng)求是不是有爬蟲(chóng)想要的數(shù)據(jù);
Headers幫助我們?cè)谂老x(chóng)中重建http請(qǐng)求,以便爬蟲(chóng)得到和瀏覽器一樣的數(shù)據(jù)。
了解和熟練使用Chrome的開(kāi)發(fā)者工具,大家就如虎添翼可以順利寫出自己的爬蟲(chóng)啦。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Matlab實(shí)現(xiàn)時(shí)間序列預(yù)測(cè)分類實(shí)例代碼
時(shí)間序列是按時(shí)間順序排列的、隨時(shí)間變化且相互關(guān)聯(lián)的數(shù)據(jù)序列,這篇文章主要給大家介紹了關(guān)于Matlab實(shí)現(xiàn)時(shí)間序列預(yù)測(cè)分類的相關(guān)資料,需要的朋友可以參考下2021-07-07編寫Python腳本來(lái)獲取mp3文件tag信息的教程
這篇文章主要介紹了編寫Python腳本來(lái)獲取mp3文件tag信息的教程,代碼基于Python2.x,文中的注釋很詳細(xì),需要的朋友可以參考下2015-05-05gearman的安裝啟動(dòng)及python API使用實(shí)例
這篇文章主要介紹了gearman的安裝啟動(dòng)及python API使用,需要的朋友可以參考下2014-07-07Python字符串和正則表達(dá)式中的反斜杠(''\'')問(wèn)題詳解
在本篇文章里小編給大家整理的是關(guān)于Python字符串和正則表達(dá)式中的反斜杠('\')問(wèn)題以及相關(guān)知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。2019-09-09python實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班
這篇文章主要為大家介紹了python實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天下早班實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python的Socket編程過(guò)程中實(shí)現(xiàn)UDP端口復(fù)用的實(shí)例分享
這篇文章主要介紹了Python的Socket編程過(guò)程中實(shí)現(xiàn)UDP端口復(fù)用的實(shí)例分享,文中作者用到了Python的twisted異步框架,需要的朋友可以參考下2016-03-03