第五次學習記錄(Python)

學習目標:

Python網絡爬蟲

學習內容:

1.HTTP的基本原理 2.網頁基礎 3.Session和Cookie

學習時間:

週一晚上9:00-10:00 週二晚上9:00-10:00 週三晚上9:00-10:00 週四晚上9:00-10:00 週五晚上8:00-10:00

學習產出:

HTTP的基本原理

URI和URL介紹

URI是統一資源標識符,全稱爲Uniform Resource Identifier,而URL是統一資源定位符,全稱爲Universal Resource Locator。
舉例說明,“http://www.baidu.com/search/detail?z=0&word= 爬蟲教程”這是一個百度搜索的一個鏈接,它是一個URI也是一個URL。用URL/URI來唯一指定它的訪問方式,這其中包括訪問協議http、訪問主機www.baidu.com和資源路徑(“/"之後的內容)。通過這樣一個鏈接,可以從互聯網上找到這個資源,這就是URL/URI。
因此,籠統地說,每一個URL也是一個URI,但不是每一個URI都是URL。因爲URI還包括一個子類,即統一資源名稱(Uniform Resource Name, URM),它命名資源但不能能指定如何定位資源。
URI是個純粹的句法結構,用於指定識別Web資源的字符串的各個不同部分。URL是URI的一個特例,它包含了定位Web資源的足夠信息。其他URI,如mailto:[email protected]則不屬於定位符,因爲根據該標識符無法定位任何資源。


超文本

超文本就是超級文本的縮寫,它的英文名稱爲HyperText。上網打開瀏覽器所看到的網頁就是超級文本解析而成的。其網頁源碼是一系列的HTML代碼,其中包括了各種標籤,如img顯示圖片、div佈局、p指定顯示段落等。而網頁源碼就可以成爲超文本。

HTTP和HTTPS

在上網的過程中,URL的開頭會有http或https,這就是訪問資源需要的協議類型。有時還會看見ftp、sftp、smb開頭的URL,它們也都是協議類型。在爬蟲中,抓取的網頁通常是http或者https協議的。
首先,HTTP(Hyper Text Transfer Protocol,超文本傳輸協議)是用於從網絡傳輸超文本數據到本地瀏覽器的傳輸協議,它能保證高效而準確地傳輸超文本文檔。HTTP是由萬維網協會和IETE共同合作指定規範。
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,超文本傳輸安全協議)是以安全爲目標的HTTP通道,通俗一點講就是HTTP安全版。即在HTTP下加入SSL層。它是一個URI scheme(抽象標識符體系)。

HTTP的請求過程

客戶端瀏覽器向網站所在的服務器發送一個請求——網站的服務器接收到這個請求後進行解析和處理——返回響應對應的數據給瀏覽器——瀏覽器中包含網頁的源代碼等內容——瀏覽器再對其進行解析——將結果呈獻給用戶。
在Chrome瀏覽器中按【F12】鍵。
(1)Name:代表的是請求的名稱,一般情況下,URL的最後一部分內容就是名稱。
(2)Status:響應的狀態碼,如顯示是200則代表正常響應,通過這個狀態碼可以判斷髮送了請求之後是否得到了正常的響應,如常見的響應狀態碼有404,500等。
(3)Type:請求的類型,常見類型有xhr、document等,如這裏有一個名稱爲www.taobao.com的請求,它的類型爲document,表示這次請求的是一個HTML文檔,響應的內容就是一些HTML代碼。
(4)Initiator:請求源,用來標記請求是哪個進程或者對象發起的。
(5)Size:表示從服務器下載的文件和請求的大小。如果是從緩存中取得的資源,則該列會顯示from cache。
(6)Time:表示從發起請求到響應請求所消耗的時間。
(7)Waterfall:網絡請求的可視化瀑布流。







再來單擊某個網站名稱的請求,可以看到關於請求更詳細的信息。
(1)General部分:Request URL爲請求的URL,Request Method爲請求的方法,Status Code爲響應狀態碼,Remote Address爲遠程服務器的地址和端口,Referrer Policy爲Referrer判別策略。
(2)Response Headers和Resquest Headers部分:該部分代表着響應頭和請求頭。請求頭中有許多信息,如瀏覽器標識、Cookie、Host等,這是請求的一部分,服務器會根據請求頭內部的信息判斷請求是否合法,進而做出對應的響應。

網頁基礎

網頁組成

一個完整的網頁大致可以分成三部分:HTML、CSS和JS。
1.HTML(Hyper Text Markup Language,超文本標記語言)是用來描述網頁的一種語言。
HTML不是一種編程語言,而是一種標記語言。
2.CSS(Cascading Style Sheet,層疊樣式表)是用來控制網頁外觀的一門技術。


#test{
   
     
width:800px;
height:600px;
background-color:red;
}

大括號前面就是一個CSS選擇器,此選擇器的意思是選中id爲test的節點,大括號內部寫的就是一條條的樣式規則,例如,width指定了元素的寬,height指定了元素的高,background-color指定了元素的背景顏色。
在網頁中一般會有統一定義整個網頁的樣式規則,並寫入CSS文件中(其後綴名稱爲.css)。在HTML中,只需要用link標籤引入寫好的CSS文件。
3.JavaScript
JavaScript簡稱JS是一種腳本語言。
在網頁中實現交互和動畫效果。
JavaScript也通常以文件形式加載,後綴名爲.js。在HTML中通過script標籤即可引入。




<script scr="test.js"></script>

綜上所述,HTML定義了網頁的內容和結果,CSS描述了網頁的佈局,JavaScript定義了網頁的行爲。

網頁的結構

<!DOCTYPE html>
<html>
	<head>
		<title>網頁的標題</title>
	</head>
	<body>
		<p>
		網頁顯示內容
		</p>
	</body>
</html>

這就是一個最簡單的HTML,開頭用DOCTYPE定義文檔的類型,其次最外層是html標籤,其內部是head(網頁頭)、title(標題)和body(網頁體)標籤。
head定義網頁的配置和引用。CSS和JS一般都是在這裏引入的。
title定義了標題,選出現在網頁的選項卡中,不會出現在正文中。
body內側就是網頁顯示的內容。


Session和Cookie

Session和Cookie是用於保持HTTP連接狀態的技術。

Session

1.當用戶訪問一個服務器的時候,如果服務器啓動Session,服務器就要爲該用戶創建一個Session。若用戶發來的請求裏面包含了一個Session ID,那麼說明該用戶之前已經登錄過,那麼服務器就按照這個Session ID把這個Session在服務器的內存中找出來。
2.若沒有Session ID就創建一個。Session ID是唯一的,不重複的,不容易找到規律的字符串,這個Session ID將在本次響應中返回到客戶端保存,而保存這個Session ID就是Cookie。

Cookie

1.內存Cookie:由瀏覽器維護,保存在內存中,瀏覽器關閉就會消失。
2.硬盤Cookie:保存在硬盤中,有一個過期時間,除非用戶手動清理或者到了過期時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章