學習目標:
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:cay@horstman.com則不屬于定位符,因為根據該識別符號無法定位任何資源,
超文本
超文本就是超級文本的縮寫,它的英文名稱為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:保存在硬碟中,有一個過期時間,除非用戶手動清理或者到了過期時間,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/237695.html
標籤:其他
上一篇:資料結構(廿六) -- C語言版 -- 圖 - 圖的遍歷 -- 鄰接表 - 深度/廣度優先遍歷/搜索(DFS、BFS)
