利用瀏覽器抓包,是爬蟲中的很實用的技能。在爬蟲編程之前,我們要對抓取的目標頁面有所了解,比如瀏覽器的這個請求這個頁面中間都經歷了什么,數據是怎么發送和返回的。
抓包的作用
我把抓包分析的作用簡單列一下:
分析請求的headers等等,可以加載到你的爬蟲中,偽裝成瀏覽器。往往可以躲過簡單的反扒策略登錄狀態獲取,如果我們在瀏覽器中登錄,抓包拿到cookies,加到我們的爬蟲中,往往就可以繞過登錄這道坎,爬蟲直接登堂入室,抓取更有價值的數據post請求,例如頁面中通過post提交的表單。我們就可以抓包看到請求是每個參數的key和value,key是什么、value有沒有編碼等等抓接口,抓包往往可以看到服務器返回到瀏覽器的的響應數據是什么,比如很多頁面中的數據,其實是中間經過一次接口的,接口中往往是json數據。這樣爬蟲就可以直接抓接口,而不是原網頁。json數據中比頁面解析提取數據來的遍歷抓包分析,有時可以繞過有些網站的反扒限制,甚至網站的驗證碼(極少其概況下啊)···
如何抓包
案例一
瀏覽器例如Chrome、Firfox都支持抓包,其中Firfox有一個開發者版本 firefox developer edition,更加專業一些,可以安裝玩玩看。
我們以Chrome瀏覽器為例吧,要有一個抓包的頁面啊
就這個鏈接啦:
http://baijiahao.baidu.com/builder/preview/s?id=1601067954790004275
瀏覽器中輸入這個鏈接,頁面空白處,右鍵“檢查”,點擊“network”,再次刷新頁面,看到如下:
看似訪問一個頁面,其實中間經過這么多請求。
其中左側,每一個請求的Headers標簽中內容如下四個部分:
GeneralResponse HeaderRequest HeadersQuery其中重點在請求的headers,將里面的數據設置到你的爬蟲,就可以偽裝爬蟲,通常設置Cookie、Host、User-Agent、Referer等。
案例二
post請求的抓包。
有表單的頁面,點擊提交,抓包可以查看post的數據有哪些,是否對數據編碼等
案例三
抓包,獲取接口。這個頁面http://www.2345.com/corp.htm?innertab想要獲取這個頁面上的各個行業和相應網址。抓取這個鏈接,提取頁面元素。不論是用正則、xpath、beautifulsoup等等。有更好的辦法嗎?抓包看看
通過抓包,我們得到接口:http://www.2345.com/js/nvaurllist1202.js?v=8.13.1抓取這個鏈接進行數據提取,不是比原頁面簡單些嗎。
python爬蟲學習之路-抓包分析 就到這里,下次開始初認python的urllib、urllib2、requests,理清楚三者的關系。這里是python2,學習了python2的爬蟲開發,python3也不在話下