python3爬蟲筆記 一 了解HTTP協議

2021-08-10 12:19:27 字數 1989 閱讀 2733

規範了客戶端如何構造並傳送請求

規範了伺服器如何響應請求。

​ 通過瀏覽器(browser)訪問伺服器的架構稱為b/s架構,通過客戶端(client)訪問伺服器的架構稱為c/s架構(如qq)。瀏覽器其實也是一中客戶端,但隨著網際網路的發展,越來越多的企業或機構採用b/s的架構,應用場景非常廣,所有現在把瀏覽器這份客戶端吧單獨拿出來稱為b/s架構。

url構成

url的構成:例:

+http://https://:傳輸使用的協議,模式,http和https的區別在於,https使用了安全套接字,也就是https在傳輸時經過了加密

+ www:域

+ pythoncode.com :主機

+ 8080:訪問主機的埠號。

+ /course/ : 路徑,類似於計算機中的資料夾的層級。

+ list.html 資源,類似的還有*.png等

+ ?cat=3&sort=1 向伺服器傳遞的引數用?與**分隔,以鍵值對的形式,多個引數以』&』分隔

url編碼

​ url是乙個字串,一些字元在url中有特殊意義,就類似於字串的轉義一樣,在某些時候需要對特殊字元,以及字典表進行編碼。例如:空格:%20或+, ! : %21, 」 : %22

​ python3中內建了urllib.parse庫來幫助對url進行編碼和解碼。

對字串:編碼:urllib.parse.quote(s) 解碼:urllib.parse.unquote(s)

對字典表:編碼:urllib.parse.urlencode(dict)

#對字串進行編碼

>>>import urllib.parse as p

>>>p.quote('faefafe! #')

'faefafe%21%20%20%20%23'

#對字串解碼

>>>p.unquote('faefafe%21%20%20%20%23')

'faefafe! #'

#字典表

>>>d =

>>>p.urlencode(d)

'id=2&page=4'

​ 瀏覽器訪問伺服器,的到返回的頁面的過程就是乙個請求與響應的過程。

​ 開啟瀏覽器訪問乙個**,右鍵選擇檢查—>network,重新整理頁面,就能看到本次請求得到的所有資源。

選擇乙個檢視,右側的』header』中,顯示的是本次請求與響應的資訊。

請求:​ 請求的方法:

常用的請求方法主要是get和post

get和post的區別:

get和post都可以向伺服器傳送資料,不同在於get傳遞引數時,引數會經過編碼用'?'拼接在url中的,比如常見的請求分頁的資料時:*.com/abc?page=1, post方法不會把引數拼接在url中,相對更安全,並且get傳遞的檔案有大小限制,post沒有限制,所以get常用於請求先關引數對應的資訊,而post通常用於向伺服器提交資訊,如註冊提交,上傳檔案等。

​ 請求中的其他主要資訊:

響應:響應包括響應的狀態碼,響應的資料型別,和正文(如html,json)等 類別

原因短語

1**informational資訊性狀態碼

2**success成功狀態碼

3**redirection重定向狀態碼

4**client error客戶端錯誤狀態碼

5**server error伺服器錯誤狀態碼

常用狀態碼:200,請求成功

​ 404,資源未找到,一般是url寫錯了

​ 500,伺服器出錯。

python3爬蟲筆記

請求 並提取 資料的 自動化 程式 發起請求 獲取響應內容 解析文字內容 儲存資料 1.瀏覽器傳送資訊給該 所在的伺服器,這個過程叫做http request。2.服務收到瀏覽器傳送的訊息後,能夠根據瀏覽器傳送訊息的內容,做相應的處理,然後把訊息回傳給瀏覽器。這個過程叫做http response。...

python3爬蟲學習筆記

爬蟲爬取京東某手機頁面 beautifulsoup 原文記錄內容太多現進行摘錄和分類 pip3 install jieba kou ubuntu python cat clahamlet.py usr bin env python coding utf 8 e10.1calhamlet.py def...

python3爬蟲學習(一)

剛簽完offer沒事幹,之前斷斷續續學過一點爬蟲,又想著再次學習一下,希望這次能堅持下來,好好的學習。爬蟲 顧名思義,在整個網路系統中,像蜘蛛一樣,爬啊爬啊,每到乙個節點,就記錄該節點的資料,以及是否訪問過。所謂的節點,在網路中就是我們常說的 整個爬蟲的過程就類似於廣度優先搜尋 bfs 乙個網路。實...