中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)制作汕頭北京seo網(wǎng)站優(yōu)化培訓(xùn)

網(wǎng)站建設(shè)制作汕頭,北京seo網(wǎng)站優(yōu)化培訓(xùn),web開發(fā)培訓(xùn)班課程,家用寬帶怎么做網(wǎng)站 訪問目錄 Requests庫 7個主要方法 Requests庫的get()方法 Response對象的屬性 爬取網(wǎng)頁的通用代碼框架 理解requests庫的異常 HTTP協(xié)議及Requests庫方法 HTTP協(xié)議 HTTP協(xié)議采用URL作為定位網(wǎng)絡(luò)資源的標(biāo)識。 HTTP協(xié)議對資源的操作 理解PATCH和PUT的區(qū)別 HTTP協(xié)議與Requse…

目錄

Requests庫

7個主要方法

Requests庫的get()方法

Response對象的屬性

爬取網(wǎng)頁的通用代碼框架

????????理解requests庫的異常

HTTP協(xié)議及Requests庫方法

HTTP協(xié)議

HTTP協(xié)議采用URL作為定位網(wǎng)絡(luò)資源的標(biāo)識。

HTTP協(xié)議對資源的操作

理解PATCH和PUT的區(qū)別

HTTP協(xié)議與Requsets庫

Requests庫主要方法解析

requests.requst()


Requests庫

>>> import requests# 獲取網(wǎng)頁
>>> r = requests.get("http://www.baidu.com")# 獲取網(wǎng)頁狀態(tài)碼,200表示成功
>>> print(r.status_code)
200>>> type(r)
<class 'requests.models.Response'>>>> r.headers
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, ection': 'Keep-Alive', 'Transfer-Encoding': 'chunked', 'Server':}

7個主要方法

方法說明
requests.requst()構(gòu)造一個請求,最基本的方法,是下面方法的支撐
requests.get()獲取HTML網(wǎng)頁,對應(yīng)HTTP中的GET方法
requests.post()向HTML網(wǎng)頁提交POST信息,對應(yīng)HTTP中的POST方法
requests.head()獲取HTML網(wǎng)頁的頭信息,對應(yīng)HTTP中的HEAD方法
requests.put()向HTML提交PUT方法,對應(yīng)HTTP中的PUT方法
requests.patch()向HTML網(wǎng)頁提交局部請求修改的的請求,對應(yīng)HTTP中的PATCH方法
requests.delete()向HTML提交刪除請求,對應(yīng)HTTP中的DELETE方法

Requests庫的get()方法

r = requests.get(url)

1、構(gòu)造一個向服務(wù)器請求資源的Request對象?\Rightarrow?Request

2、返回一個包含服務(wù)器資源的Response對象?\Rightarrow?Response?\Rightarrow?Response對象包含爬蟲返回的內(nèi)容

requests.get(url,params=None,**kwargs)

url:獲取html的網(wǎng)頁的url

params:url中的額外的參數(shù),字典或字節(jié)流格式,可選

**kwargs:12個控制訪問的參數(shù)

def get(url,params=None,**kwargs):"""Send a GET request.:param url: URL for the new :class:'Request' object.:param params: (optional) Dictionary or bytes to be sent in the query string for the:param \*\*kwargs: Optional arguments that ''request'' takes.:return: class:'Request <Request>' object:rtype: requests.Request"""kwargs.setdefault('allow_radirects', True)return request('get', url, params=params, **kwargs)

Response對象的屬性

屬性說明
r.status_codeHTTP請求返回狀態(tài)碼,200表示連接成功,404表示失敗
r.textHTTP響應(yīng)的字符串形式,即,url對應(yīng)的頁面內(nèi)容
r.encoding從HTTP header中猜測的響應(yīng)內(nèi)容的編碼方式
r.apparent_encoding從內(nèi)容中分析響應(yīng)內(nèi)容的編碼方式(備選編碼方式)
r.contentHTTP響應(yīng)內(nèi)容的二進(jìn)制形式

r.encoding:如果header中不存在charset,則認(rèn)為編碼為 ISO-8859-1。

r.apparent_encoding:根據(jù)網(wǎng)頁內(nèi)容分析出的編碼方式。


爬取網(wǎng)頁的通用代碼框架

理解requests庫的異常
異常說明
requests.ConnectionError網(wǎng)絡(luò)連接異常,如DNS查詢失敗,拒絕連接等
requests.HTTPErrorHTTP錯誤異常
requests.URLRequiredURL缺失異常
requests.TooManyRedirects超過最大重定向次數(shù),產(chǎn)生重定向異常
requests.ConnectTimeout連接遠(yuǎn)程服務(wù)器超時異常
requests.Timeout請求URL超時,產(chǎn)生超時異常

專門與異常打交道

import requests
def getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_status()  # 如果不是200,引發(fā)HTTPError異常r.encoding = r.apparent_encodingreturn r.textexcept:return "產(chǎn)生異常"if __name__ == "__main__":url = "http://www.daidu.dom"print(getHTMLText(url))

爬取網(wǎng)頁的通用代碼框架最大的作用是能夠使用戶訪問或爬取網(wǎng)頁變得更有效更穩(wěn)定更可靠


HTTP協(xié)議及Requests庫方法

HTTP協(xié)議

HTTP,Hypertext Transfer Protocol,超文本傳輸協(xié)議。

HTTP是一個基于“請求與響應(yīng)”模式的、無狀態(tài)的應(yīng)用層協(xié)議。

請求與響應(yīng):用戶發(fā)起請求,服務(wù)器做相關(guān)響應(yīng)。

無狀態(tài):第一次跟第二次請求之間并沒有相關(guān)的關(guān)聯(lián)。

應(yīng)用層協(xié)議:該協(xié)議工作再TCP協(xié)議之上。

HTTP協(xié)議采用URL作為定位網(wǎng)絡(luò)資源的標(biāo)識。

URL格式:http://host[:post][path]

host:合法的Internet主機(jī)域名或IP地址

port:端口號,缺省端口為80

path:請求資源的路徑

HTTP URL實例:

http://www.bit.edu.cn

http://220.181.111.188/duty

HTTP URL理解:

URL是通過HTTP協(xié)議存取資源的Internet路徑,一個URL對應(yīng)一個數(shù)據(jù)資源。

HTTP協(xié)議對資源的操作

方法說明
GET請求獲取URL位置的資源
HEAD請求獲取URL位置資源的響應(yīng)消息報告,即獲取該資源的頭部消息
POST?請求向URL位置的資源后附加新的數(shù)據(jù)
PUT請求向URL位置存儲一個資源,覆蓋原URL位置的資源
PATCH請求局部更新URL位置的資源,即改變該處資源的部分內(nèi)容
DELETE請求刪除URL位置存儲的資源

理解PATCH和PUT的區(qū)別

假設(shè)URL位置有一組數(shù)據(jù)UserInfo,包括UserID、UserName等20個字段。

需求:用戶修改了UserName,其他不變。

  • 采用PATCH,僅向URL提交UserName的局部更新請求。
  • 采用PUT,必須將所有20個字段一并提交到URL,未提交字段被刪除。

PATCH的最主要好處:節(jié)省網(wǎng)絡(luò)帶寬

HTTP協(xié)議與Requsets庫

HTTP協(xié)議方法Requsets庫方法功能一致性
GETrequests.get()一致
HEADrequests.post()一致
POSTrequests.head()一致
PUTrequests.put()一致
PATCHrequests.patch()一致
DELETErequests.delete()一致
Requsets庫的head()方法
r = requests.head('http://httpbin.org/get')
r.headers # 展示反饋頭部信息的內(nèi)容
r.text # 展示全部內(nèi)容,但發(fā)現(xiàn)內(nèi)容是空

head()方法可以用很少的網(wǎng)絡(luò)流量獲取網(wǎng)絡(luò)資源的概要信息。

Requsets庫的post()方法
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post('http://httpbin.org/post', data = payload)
print(r.text)

當(dāng)我們向UPL去POST一個字典,或者POAT鍵值對的時候,那么鍵值對會默認(rèn)地被存儲到表單的字段下。

r = requests.post('http://httpbin.org/post', data = 'ABC')
print(r.text)

如果我們不提交鍵值對,就提交一個字符串ABC,那么我們就發(fā)現(xiàn)ABC被存到了data的相關(guān)的字段下。

post方法根據(jù)用戶提交內(nèi)容的不同在服務(wù)器上會做數(shù)據(jù)的相關(guān)的整理。

put方法也是一樣,它與post方法類似,只不過它能夠?qū)⒃械臄?shù)據(jù)覆蓋掉。

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.put('http://httpbin.org/post', data = payload)
print(r.text)


Requests庫主要方法解析

requests.requst()

requests.requst(method,url,**kwargs)

method:請求方式,對應(yīng)get/put/post等7種

url:擬獲取頁面的url鏈接

**kwargs:控制訪問的參數(shù),共13個

method:請求方式

r =?requests.requst('GET',url,**kwargs)
r =?requests.requst('HEAD',url,**kwargs)
r =?requests.requst('POST',url,**kwargs)
r =?requests.requst('PUT',url,**kwargs)
r =?requests.requst('PATCH',url,**kwargs)
r =?requests.requst('delete',url,**kwargs)
r =?requests.requst('OPTIONS',url,**kwargs)

OPTIONS,事實上是向服務(wù)器獲取一些服務(wù)器跟客戶端能夠打交道的參數(shù),這里面并不與獲取資源直接相關(guān),因此平時中使用的少。

**kwargs:控制訪問的參數(shù),均為可選項

  • params:字典或字節(jié)序列,作為參數(shù)增加到url中
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('http://python123.io/ws', params = kv)
print(r.url)# 運行結(jié)果 http://python123.io/ws?key1=value1&key2=value2
  • data:字典、字節(jié)序列或文件對象,作為Request的內(nèi)容
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('POST','http://python123.io/ws', data = kv)
body = '主體內(nèi)容'
r = requests.request('POST','http://python123.io/ws', data = body)
  • json:JSON格式的數(shù)據(jù),作為Request的內(nèi)容
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('POST','http://python123.io/ws', json = kv)
  • headers:字典,HTTP定制頭
hd = {'user-agent': 'Chrome/10'}
r = requests.request('POST','http://python123.io/ws', headers = hd)
  • cookies:字典或CookieJar,Request中的cookies
  • auth:元組,支持HTTP認(rèn)證功能
  • files:字典類型,傳輸文件
fs = {'file': open'data.xls', 'rb'}
r = requests.request('POST','http://python123.io/ws', files = fs)
  • timeout:設(shè)定超時時間,秒為單位
r = requests.request('POST','http://python123.io/ws', timeout = 10)

proxies:字典類型,設(shè)定訪問代理服務(wù)器,可以增加登錄認(rèn)證

pxs = { 'http':'http://user:pass@10.10.10.1:1234','https','http://10.10.10.1:4321'}
r = requests.request('POST','http://python123.io/ws', proxies = pxs)
  • allow_redirects:True/False,默認(rèn)為True,重定向開關(guān)
  • stream:True/False,默認(rèn)為True,獲取內(nèi)容立即下載開關(guān)
  • verify:True/False,默認(rèn)為True,認(rèn)證SSL證書開關(guān)
  • cert:本地SSL證書路徑

requests.get()

requests.get(url,params=None,**kwargs)

url:獲取頁面中的url鏈接

params:url中的額外參數(shù),字典或字節(jié)流格式,可選

**kwargs:12個控制訪問的參數(shù)(request中除了params參數(shù)之外的)

requests.head()

requests.head(url,**kwargs)

url:擬獲取頁面中的url鏈接

**kwargs:13個控制訪問的參數(shù)(與request一樣)

requests.post()

requests.post(url,data = None, json = None,**kwargs)

url:擬更新頁面的url鏈接

data:字典、字節(jié)序列或文件,Request的內(nèi)容

json:JSON格式的數(shù)據(jù),Request的內(nèi)容

**kwargs:11個控制訪問的參數(shù)(除了data和json,其他11個request一樣的參數(shù)放最后)

requests.put()

requests.put(url,data = None,**kwargs)

url:擬更新頁面的url鏈接

data:字典、字節(jié)序列或文件,Request的內(nèi)容

**kwargs:12個控制訪問的參數(shù)(除了data,其他12個request一樣的參數(shù)放最后)

requests.patch()

requests.patch(url,data = None,**kwargs)

url:擬更新頁面的url鏈接

data:字典、字節(jié)序列或文件,Request的內(nèi)容

**kwargs:12個控制訪問的參數(shù)(除了data,其他12個request一樣的參數(shù)放最后)

requests.delete()

requests.delete(url,**kwargs)

url:擬刪除頁面的url鏈接

**kwargs:13個控制訪問的參數(shù)(request一樣)

http://www.risenshineclean.com/news/33244.html

相關(guān)文章:

  • linux wordpress南京百度提升優(yōu)化
  • 做網(wǎng)站得花多少錢搜索引擎優(yōu)化包括
  • 課桌公司網(wǎng)站建設(shè)百度seo搜索引擎優(yōu)化
  • 前段模板的網(wǎng)站企業(yè)培訓(xùn)機(jī)構(gòu)
  • 攝影設(shè)計網(wǎng)站百度知道官網(wǎng)登錄入口
  • 做網(wǎng)站需注意事項湛江今日頭條新聞
  • 做彩妝網(wǎng)站的公司建站教程
  • 網(wǎng)站建設(shè)的招聘要求張家口網(wǎng)站seo
  • 什么軟件 做短視頻網(wǎng)站好北京百度推廣優(yōu)化排名
  • 高德地圖有外資背景嗎seo優(yōu)化技術(shù)廠家
  • 網(wǎng)站建設(shè)制作公司哪家打開百度網(wǎng)頁
  • 如何建立一個網(wǎng)站根目錄山東企業(yè)網(wǎng)站建設(shè)
  • 848給我做一下88網(wǎng)站人工智能培訓(xùn)機(jī)構(gòu)哪個好
  • 蘇州招聘網(wǎng)站建設(shè)bt磁力搜索
  • 在線做抽獎網(wǎng)站營銷的四種方式
  • 專業(yè)的網(wǎng)站建設(shè)官網(wǎng)山西百度推廣開戶
  • seo聯(lián)盟平臺seo教程自學(xué)入門教材
  • 佛山多語網(wǎng)站制作百度搜索關(guān)鍵詞技巧
  • 免費網(wǎng)站模板怎么做網(wǎng)站無錫營銷型網(wǎng)站建站
  • 廣西網(wǎng)站制作b站推廣入口在哪
  • 萬網(wǎng)域名查詢工具廣州seo效果
  • 企業(yè)網(wǎng)站建設(shè)官網(wǎng)搜索引擎關(guān)鍵詞排名
  • 國內(nèi)外設(shè)計網(wǎng)站做企業(yè)推廣的公司
  • 做網(wǎng)站bbs是什么意思北京網(wǎng)站推廣營銷策劃
  • 正規(guī)制作網(wǎng)站公司哪家好西安全網(wǎng)優(yōu)化
  • 泉州做媽祖雕像網(wǎng)站常用的網(wǎng)絡(luò)營銷工具
  • 有什么值得做的網(wǎng)站企業(yè)網(wǎng)頁設(shè)計公司
  • 建購物網(wǎng)站怎么建呀微商怎么做推廣加好友
  • 廣州響應(yīng)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計友情鏈接怎么做
  • 深圳方維網(wǎng)站建設(shè)公司百度推廣運營公司