python3爬蟲學習筆記(二)

爬蟲學習筆記(二)

引言

第二部分內(nèi)容,主要是介紹一些爬蟲原理以及網(wǎng)頁的基礎知識

1.HTTP原理

概念

1.URI,URL

uniform resource identifier,統(tǒng)一資源標志符
uniform resource locator,統(tǒng)一資源定位符

2.超文本hypertext

超鏈接文本

3.HTTP,HTTPS

hyper text transfer protocol,超文本傳輸協(xié)議http
將超文本數(shù)據(jù)從網(wǎng)絡傳輸?shù)奖镜氐膫魉蛥f(xié)議。
https,則是http的安全版本,加入了secure socket layer層,即ssl層。

2.http請求過程

客戶端向服務器發(fā)送請求有4部分:請求方法(method),請求地址(url),請求頭(header),請求體(body)

請求方法

  • get
    url中包含請求參數(shù);最多1024字節(jié)

  • post
    需要登陸之類的請求用post,由于數(shù)據(jù)通過表單傳輸,不會體現(xiàn)在url中;字節(jié)無限制

原因:需要登陸的包含用戶賬號密碼等敏感信息,用get請求會暴露在url中;上傳較大文件也用post請求。

請求地址

請求頭

常用請求頭:

1.host-主機ip和端口號

2.cookie-維持當前訪問會話,比如每次等登陸狀態(tài)服務器都能識別。

3.user-agent-服務器識別客戶的操作系統(tǒng)、瀏覽器之類的版本信息。

4.content-type-互聯(lián)網(wǎng)媒體類型,請求中的文件類型。

請求體

只用于post請求表單數(shù)據(jù),get請求為空。

響應

1.響應狀態(tài)碼

表示服務器響應狀態(tài),200-正常,404-頁面未找到,500-服務器內(nèi)部錯誤
常見的響應錯誤及原因,可以參考這篇博文。

2.響應頭

3.響應體

網(wǎng)頁的源代碼

2.網(wǎng)頁基礎知識

組成

主要有:html,css,javascript;分別對應-骨架、皮膚、肌肉

1.html

超文本標記語言(hyper text markup language),用于描述網(wǎng)頁的語言
img-圖片;video-視頻,p-段落,div-布局標簽。
關于html基礎,可以參考這邊w3school-html教程

2.css

層疊式樣式表(cascading style sheets),決定網(wǎng)頁字大小、顏色、元素間距、排列等。
用link標簽引入

3.javascript

幫助用戶實現(xiàn)動態(tài)交互等頁面功能,比如:下載進度條、提示框等。
用script標簽引入。

所以html定義網(wǎng)頁內(nèi)容和結構,css描述網(wǎng)頁布局,JavaScript定義網(wǎng)頁行為。

結構

doctype-定義文檔類型

html標簽要閉合

<meta charset="utf-8">定義了網(wǎng)頁編碼

一般結構是html標簽嵌套head和body標簽,head用于定義網(wǎng)頁配置和引用,body用于定義網(wǎng)頁正文。

節(jié)點樹及節(jié)點間的關系

dom(document object model),文檔對象模型。

節(jié)點樹,節(jié)點關系-父(parent),子(child),兄弟(sibling)

href-屬性、a-超鏈接

選擇器

用于定位節(jié)點的工具

3.爬蟲基本原理

javascript渲染頁面

抓取頁面時源碼和瀏覽器內(nèi)容不同,是由于網(wǎng)頁使用ajax或者JavaScript渲染得到的。網(wǎng)頁會先加載html,然后加載JavaScript代碼,得到完整界面。

會話和cookies

靜態(tài)和動態(tài)網(wǎng)頁

靜態(tài):加載快、簡單、可維護性差
動態(tài):靈活多變

保持http連接狀態(tài)

會話和cookies,cookies里保存了登陸憑著,下次請求攜帶cookies無需重新登陸。將登陸后獲取的cookies放入請求頭,可以直接請求。關于會話和cookies可以看這篇博文

  • 會話機制:cookies在客戶端記錄信息,確定身份;session在服務器端記錄信息,確定身份。

4.代理基本原理

使用代理可以偽裝ip,防止由于單位時間內(nèi)訪問次數(shù)太大而被封ip的情況發(fā)生。

簡言之就是客戶端和服務器之間的中轉(zhuǎn)站。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容