小白學爬蟲(一) — 基礎知識

小白學爬蟲(一) — 基礎知識
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

什麼是爬蟲

  • 爬蟲就是模擬客戶端(瀏覽器)傳送網路請求,獲取響應,按照規則提取資料的程式

模擬客戶端(瀏覽器)傳送網路請求的意思就是:照著瀏覽器傳送一模一樣的請求,獲取和瀏覽器一模一樣的資料

爬蟲爬到的資料去哪了

  • 呈現出來:展示在網頁上,或者展示在app上,
  • 進行分析:從資料中尋找一些規律

瀏覽器的請求

前面已經說過,爬蟲是模擬客戶端(瀏覽器)的請求,獲取響應的。
那什麼是瀏覽器的請求呢?

url

比如在百度裡面搜尋“爬蟲”
這裡寫圖片描述
在空白處右鍵–>檢查–>network–>Name欄點選第一個,在右邊選擇Headers–>Request URL。 這是就是請求的url,一個url對應這一個固定的檔案,可以先理解為一個網址。

url的組成

url的組成是:協議 域名 路徑 引數
https://www.baidu.com/s?ie=utf-8&mod=1&isid=d2898d9a000303c6&ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=99669880_hao_pg&wd=%E7%88%AC%E8%99%AB&rsv_spt=1&oq=%25E7%2588%25AC%25E8%2599%25AB&rsv_pq=d2898d9a000303c6&rsv_t=cc32VU19zym%2FEvj2XRN3AVQii94Jur5W%2BwDLe%2B%2Brtnf%2BANyj1Tg6Ze9vlOexjXsYPePU7V1x&rqlang=cn&rsv_enter=0&rsv_sug=2&bs=%E7%88%AC%E8%99%AB&rsv_sid=undefined&_ss=1&clist=34555a158986901%0934555a158986901&hsug=&f4s=1&csor=2&_cr1=30884
以剛才那個url為例:協議就是最前面的https。域名:www.baidu.com。 路徑:/s
“?”後面的就是引數,引數之間以”&”隔開。

瀏覽器請求url地址對應的響應是什麼呢?

“響應”可以理解為:伺服器給客戶端返回的東西。還是以百度搜尋“爬蟲”為例。

在空白處右鍵–>檢查 , 就可以得到右邊部分頁面, 在elements裡面的東西就是瀏覽器得到的響應。
這裡寫圖片描述
這裡寫圖片描述
用瀏覽器請求一個url為什麼會得到那麼多一堆東西呢?如下圖
這裡寫圖片描述
過程是這樣子的,當瀏覽器請求一個url地址時,得到伺服器的響應之後(network下找到對應的地址,選擇response,就是第三張圖),會將這些字串渲染顯示到螢幕上,但是這時候瀏覽器發現響應字串中又有很多url地址,然後又會請求,於是就出來這麼多東西了。
但是如果是程式(爬蟲)就不會得到這麼多東西,只會得到一個伺服器返回的響應。
總結一下:
瀏覽器請求url地址,得到的東西是:當前url地址對應的響應 圖片 css js。對應的就是elements下面的內容
爬蟲請求url地址,得到的東西是:當前url地址對應的響應。當前url的響應就是network–>reponse或者檢視網頁原始碼的內容

初識http與https

http:超文字傳輸協議。http協議是明文傳輸的,意思就是傳輸的資料沒有經過加密,直接傳輸。
https:http SSL(安全套接字層)。https是以密文傳輸的,傳輸的資料是經過加密的,接收方需要經過解密之後才能得到加密前的資料。
從這裡可以看出http的效率要高於https,但是不安全。

http協議之請求

請求行

這裡寫圖片描述
請求行就是General中的內容
這裡寫圖片描述
Request URL:請求的url。
Request Method:請求的方式。 get或者post方式
Status Code:狀態碼。返回200表示正確
Referrer Policy:表示你是哪裡進入這個頁面的

請求頭

這裡寫圖片描述
點選view source
這裡寫圖片描述
主要是這幾個引數。
GET:表示是get方式請求的,後面的值是 路徑 和 引數
connection:keep-alive。 表示可以建立常連結
Cache-Control:快取控制。max-age=0 表示不快取任何東西
User-Agent(重要):使用者代理。伺服器從這裡知道是誰在請求它,什麼平臺下的什麼版本瀏覽器,或者是一個程式
Cookie(重要):用來儲存使用者資訊,每次請求都會傳送給對方瀏覽器。
什麼時候需要設定Cookie呢?
訪問需要登入的頁面時,對方會根據Cookie來判斷是不是爬蟲

請求體

請求體就是攜帶資料的,get請求沒有請求體,post請求有請求體。那為什麼get請求沒有請求體呢?難道它不攜帶資料嗎?肯定不是的,get請求的攜帶的資料直接通過引數給出了。
post請求常用於登陸註冊
post請求攜帶的資料量比get請求大,多,常用於傳輸大文字的時候

http協議之響應

響應頭

這裡寫圖片描述
主要看Set-Cookie欄位:對方伺服器通過該欄位設定cookie到本地。

響應體

url地址對應的響應

抓包

其實在network裡面查詢我們需要的東西的過程就叫做抓包

這一節講的主要是爬蟲的基礎東西,從下一節開始會真正開始寫程式碼

相關文章

程式語言 最新文章