?-Modest_Proud-
一、爬取網(wǎng)頁的通用代碼框架
首先藕溅,我們使用Requests庫進(jìn)行網(wǎng)頁訪問的時(shí)候,經(jīng)常用get(),獲得url的相關(guān)內(nèi)容汁掠。
由于網(wǎng)絡(luò)連接是有風(fēng)險(xiǎn)的,所以異常處理語句很重要考阱。
理解爬取網(wǎng)頁的通用代碼框架
import requests ?##加載Requests庫
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)頁文本內(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è)基于請求與響應(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:請求資源的路徑
HTTP URL 實(shí)例:
http://www.baidu.com
http://120.76.26.60:8188/xcb/login.jsp
HTTP URL 理解:
URL是通過HTTP協(xié)議存取資源的Internet路徑捐友,一個(gè)URL對應(yīng)一個(gè)數(shù)據(jù)資源。
HTTP協(xié)議對資源的操作
備注:PUT和PATCH同樣是更新URL位置的資源溃槐,區(qū)別在于:
PUT提交更新全部位置的資源請求匣砖,PATCH提交局部更新請求
例:有A、B昏滴、C猴鲫,我們現(xiàn)在需要把A改成G
PUT:請求將A、B谣殊、C用G拂共、B、C替換
PATCH:請求G替換位置為A
若用PUT提交PATCH姻几,則會(huì)出現(xiàn)A宜狐、B、C—>G
HTTP協(xié)議與Requests庫方法功能對比
Requests庫的HEAD()方法
Requests庫的POST()方法
向URL POST一個(gè)字典蛇捌,自動(dòng)編碼為from(表單)
向URL POST一個(gè)字符串抚恒,自動(dòng)編碼為data