?-Modest_Proud-
一、爬取網(wǎng)頁(yè)的通用代碼框架
首先,我們使用Requests庫(kù)進(jìn)行網(wǎng)頁(yè)訪問的時(shí)候,經(jīng)常用get(),獲得url的相關(guān)內(nèi)容。
由于網(wǎng)絡(luò)連接是有風(fēng)險(xiǎn)的,所以異常處理語句很重要。
理解爬取網(wǎng)頁(yè)的通用代碼框架
import requests ?##加載Requests庫(kù)
def getHTMLText(url):
##定義getHTMLTexl函數(shù)
try:
r=requests.get(url,timeout=30)
##設(shè)定get函數(shù)參數(shù),超時(shí)限制30s
r.raise_for_status()
##如果狀態(tài)不是200,引發(fā)HTMLError異常
r.encoding="utf-8"
##更改編碼為utf-8格式
return r.text
##返回網(wǎng)頁(yè)文本內(nèi)容
except:
return "產(chǎn)生異常"
##返回異常提示
if __name__=="__main__":
##運(yùn)行模塊
url="http://www.baidu.com"
##給url賦值
print(getHTMLText(url))
##打印函數(shù)內(nèi)容
輸出結(jié)果如下圖
如果我們將url=“http://www.baidu.com"改成url="http:www.baidu.com" 會(huì)出現(xiàn)什么情況?
二、理解HTTP協(xié)議
HTTP(超文本傳輸協(xié)議)是一個(gè)基于請(qǐng)求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,常基于TCP的連接方式,HTTP1.1版本中給出一種持續(xù)連接的機(jī)制,絕大多數(shù)的Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用。
URL格式:http://host[:port][path]
host:合法的Internet主機(jī)域名或IP地址
port:端口好,缺省端口為80
path:請(qǐng)求資源的路徑
HTTP URL 實(shí)例:
http://www.baidu.com
http://120.76.26.60:8188/xcb/login.jsp
HTTP URL 理解:
URL是通過HTTP協(xié)議存取資源的Internet路徑,一個(gè)URL對(duì)應(yīng)一個(gè)數(shù)據(jù)資源。
HTTP協(xié)議對(duì)資源的操作
備注:PUT和PATCH同樣是更新URL位置的資源,區(qū)別在于:
PUT提交更新全部位置的資源請(qǐng)求,PATCH提交局部更新請(qǐng)求
例:有A、B、C,我們現(xiàn)在需要把A改成G
PUT:請(qǐng)求將A、B、C用G、B、C替換
PATCH:請(qǐng)求G替換位置為A
若用PUT提交PATCH,則會(huì)出現(xiàn)A、B、C—>G
HTTP協(xié)議與Requests庫(kù)方法功能對(duì)比
Requests庫(kù)的HEAD()方法
Requests庫(kù)的POST()方法
向URL POST一個(gè)字典,自動(dòng)編碼為from(表單)
向URL POST一個(gè)字符串,自動(dòng)編碼為data