python3網路爬蟲——day1-1
網路爬蟲教材:
python3 網路爬蟲開發實戰——崔慶才
直接從第二章開始學習。
2.1 HTTP基本原理
URI:Uniform Resource Identifier,統一資源識別符號
URL:Uniform Resource Locator ,統一資源定位符
URN:Uniform Resource Name,統一資源名稱
URI包含URL和URN
HTTP:Hyper Text Transfer Protocol 超文字傳輸協議
HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer,HTTPS安全版,即HTTP下加入SSL層。
HTTP請求過程
瀏覽器向伺服器傳送請求,伺服器收到請求後進行解析處理,返回對應的響應。
請求:分為四部分,請求方法(Request Method),請求網址(Request URL),請求頭(Request Headers)、請求體(Request Body)。
請求方法:GET 和POST。GET請求中的引數包含在URL裡面,資料可以在URL中看到,而POST請求的URL不會包含這些資料,資料都是通過表單形式傳輸的,會包含在請求體中。GET請求提交的資料最多隻有1024位元組,而POST方式沒有限制。
請求網址:唯一確定我們想要的資源
請求頭:用來說明伺服器要使用的附加資訊
Referer:此內容用來標識這個請求是從哪個頁面發過來的,伺服器可以拿到這一資訊並做相應處理,如做來源統計、防盜鏈處理等
User-Agent:簡稱UA,它是一個特殊的字串頭,可以使伺服器識別客戶使用的作業系統及版本、瀏覽器及版本資訊。在做爬蟲時加上此資訊,可以偽裝成瀏覽器;如果不加,很可能會被識別出為爬蟲。
Content-Type:也叫網際網路媒體型別(Internet Media Type)或者MIME型別,在HTTP協議訊息頭中,它用來表示具體請求中的媒體型別資訊。參考http://tool.oschina.net/commons
請求體:請求體一般承載的內容是POST請求中的表單資料,而對於GET請求,請求體則為空。
Content-Type | 提交資料的方式 |
application/x-www-form-urlencoded | 表單資料 |
multipart/form-data | 表達檔案上傳 |
application/json | 序列化JSON資料 |
text/xml | XML資料 |
響應:響應狀態碼(Response Status Code),響應頭(Response Headers)和響應體(Response Body)
1、響應狀態碼:表示伺服器的響應狀態,如200代表伺服器正常響應,404代表頁面未找到,500代表伺服器內部發生錯誤。在爬蟲中,如果狀態碼為200,則證明成功返回資料,再進行進一步的處理,否則直接忽略。
2、響應頭:包含了伺服器對請求的應答資訊。
Data:標識響應產生的時間
Expires:指定響應的過期時間,可以使代理伺服器或瀏覽器將載入內容更新到快取中。如果再次訪問時,就可以直接從快取中載入,降低伺服器負載,縮短載入時間。
3、響應體:響應體的正文資料都在響應體中。我們做爬蟲請求網頁後,要解析的內容就是響應體。