通過
我們知道了什么是爬蟲
也知道了爬蟲的具體流程
那么在我們要對某個網站進行爬取的時候
要對其數據進行分析
就要知道應該怎么請求
就要知道獲取的數據是什么樣的
所以我們要學會怎么抓咪咪!
哦,不對。
我們要學會怎么數據抓包
雖然小饅頭也是包的一種
ok...anyway...
打開我們的 Chrome 瀏覽器
在這里 小帥b 提醒大家一句
盡量不要用國產瀏覽器
很多是有后門的
所以
Chrome 是首選!
ok,打開 Chrome 瀏覽器之后呢
我們隨便輸入一個網址吧
比如
www.pornhub.com
營養跟不上?那就...
輸入一個人人都能上的網站
www.baidu.com
用力回車
一個熟悉的頁面顯示在你的面前
這個時候,你按下 F12
你可以看到彈出一個有點裝逼的窗口
這個玩意
正是我們想要的
可以看到
Element 標簽下對應的 HTML 代碼
其實就是這個網頁的代碼
我們可以在這里除了看看它的代碼之外
我們還可以修改一些東西
比如我把這個按鈕改成小帥b
按下回車
是不是瞬間逼格滿滿
哦,不好意思
今天不是要說怎么裝逼的
我們點擊 Network 這個標簽
然后刷新一下
可以看到有很多的請求
HTTP 的請求方式有好幾種
GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE
不過最常見的就是 GET 和 POST 請求
咱們就一一說道說道
接下來就是
我們直接搜索「蒼老師」
然后我們就可以發現
有好多請求
這些都是 GET 請求
我們隨便點擊一個請求進去
可以看到我們的請求URL
https://www.baidu.com/s?wd=%E8%8B%8D%E8%80%81%E5%B8%88&rsv_spt=1&rsv_iqid=0xad707ee600011b25&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_enter=0&oq=%25E8%258B%258D%25E8%2580%2581%25E5%25B8%2588&rsv_t=5d8eqNDy4ZpyUOz7ByzyIMYfH5Jc7861dr4CFQaY3WCiDnOpBLob6Eouk23%2F3L%2BTD46O&rsv_sug3=15&rsv_pq=996e776f0000df06&rsv_sug4=19123
在 ?后面的這些 jb 玩意兒
就是 GET 請求的參數
這些參數以「鍵值對」的形式實現
比如這里的
wd=%E8%8B%8D%E8%80%81%E5%B8%88
就是告訴百度
我們要查詢的是蒼老師相關的內容
這種方式的請求方式是最簡單的
所以以后我們在 Python 寫 GET 請求的時候
直接在 URL 后面加個 ?然后添加參數值就好了
比如
我要百度搜索波多野結衣
那么就是
https://www.baidu.com/s?wd=波多野結衣
不信你直接在瀏覽器這樣搜
是一毛一樣的
那么,啥是 POST 請求呢?
我們在做一些信息提交的時候
比如注冊,登錄
這時候我們做的就是 POST 請求
POST 的參數不會直接放在 URL 上
會以 Form 表單的形式將數據提交給服務器
我們來登錄一下百度
當我們點擊登錄的時候
就開始將我們的賬號密碼請求給百度服務器
可以看到我們請求了 login 這個接口
請求方法就是 POST
而我們的請求參數是以 Form 表單的方式提交的
拉到下面就可以看到
username 就是 xiaoshuaib
而密碼,就是被加密了的
這些都是 POST 參數
可以發現
GET請求把請求參數都暴露在URL上
而POST請求的參數放在request body 里面
POST請求方式還對密碼參數加了密
這樣就相對安全一些
ok
你已經了解請求方式了
接下來說說請求頭
當然說的不是上面這個 gou 頭哈
我們剛剛在訪問百度的時候
可以看到這個玩意
這個就是請求頭
Request Header
我們在做 HTTP 請求的時候
除了提交一些參數之外
我們還有定義一些 HTTP 請求的頭部信息
比如 Accept、Host、cookie、User-Agent等等
這些參數也是我們在做爬蟲要用到
通過這些信息,欺騙服務器,告訴它我們是正規請求
比如
我們可以在代碼里面設置 cookie 告訴服務器我們就是在這個瀏覽器請求的會話
User-Agent 告訴服務器我們是瀏覽器請求的
說完我們這邊的請求了
接着我們再說說服務器的響應
你一定遇到過 404 頁面吧
或者服務器錯誤返回個 502 吧
這些 404 啊,200啊,301啊,502啊
都是服務器的響應碼
一般服務器給我們返回 200
那就說明
我們成功請求了
再來說說響應頭
當我們請求成功之后
服務器會給我們返回響應碼之外
還有響應頭
這個頭主要是告訴我們數據以什么樣的形式展現
告訴我們cookie的設置
還有一個
就是響應體了
說白了,就是服務器返回給我們的數據
我們點擊 Response 就可以看到相關的數據了
看,這些就是服務器返回給我們的 HTML 源代碼
對於不同的請求
我們獲取到的數據是不一樣的
除了 HTML的,也有 JSON 的
圖片二進制數據等等
可以針對不同的情況
用不同的手段來解析這些數據
說到這里
想必你已經會在 Chrome 抓包了
所謂抓包
就是我們摸清了瀏覽器里面的套路
知道它是怎么搞的
那么通過我們的請求
GET 請求也好
POST 請求也罷
只要知道請求方式
只要知道請求參數
只要知道請求頭定義
只要知道怎么拿到返回的數據
這..
對我們來說
爬蟲還難么?
完了!
爽嗎?
那還不把這個公眾號設置為「星標」?
那還不轉發?
那還不點好看?
那就趕緊掃一掃
加入pythonner的聚集地
我們一起從裝逼到牛逼
近期文章