最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用Requests請求網(wǎng)頁方式

 更新時(shí)間:2023年03月14日 09:24:16   作者:程序猿-張益達(dá)  
這篇文章主要介紹了Python使用Requests請求網(wǎng)頁方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Requests 繼承了urllib2的所有特性。

Requests支持HTTP連接保持和連接池,支持使用cookie保持會(huì)話,支持文件上傳,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國際化的 URL 和 POST 數(shù)據(jù)自動(dòng)編碼。

安裝方式

利用 pip 安裝

$ pip install requests

GET請求

基本GET請求(headers參數(shù) 和 parmas參數(shù))

1.最基本的GET請求可以直接用get方法'

response = requests.get("http://www.baidu.com/")
?
# 也可以這么寫
# response = requests.request("get", "http://www.baidu.com/")

2.添加 headers 和 查詢參數(shù)

如果想添加 headers,可以傳入headers參數(shù)來增加請求頭中的headers信息。

如果要將參數(shù)放在url中傳遞,可以利用 params 參數(shù)。

import requests
?
kw = {'wd':'長城'}
?
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
?
# params 接收一個(gè)字典或者字符串的查詢參數(shù),字典類型自動(dòng)轉(zhuǎn)換為url編碼,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)
?
# 查看響應(yīng)內(nèi)容,response.text 返回的是Unicode格式的數(shù)據(jù)
print (response.text)
?
# 查看響應(yīng)內(nèi)容,response.content返回的字節(jié)流數(shù)據(jù)
print (respones.content)
?
# 查看完整url地址
print (response.url)
?
# 查看響應(yīng)頭部字符編碼
print (response.encoding)
?
# 查看響應(yīng)碼
print (response.status_code)

運(yùn)行結(jié)果

......
 
......
 
'http://www.baidu.com/s?wd=%E9%95%BF%E5%9F%8E'
 
'utf-8'
 
200

使用response.text 時(shí),Requests 會(huì)基于 HTTP 響應(yīng)的文本編碼自動(dòng)解碼響應(yīng)內(nèi)容,大多數(shù) Unicode 字符集都能被無縫地解碼。

使用response.content 時(shí),返回的是服務(wù)器響應(yīng)數(shù)據(jù)的原始二進(jìn)制字節(jié)流,可以用來保存圖片等二進(jìn)制文件。

POST方法

1.基本的POST的請求

response = requests.post("http://www.baidu.com/",data = data)

2.body帶參數(shù)

formdata = {
? ? "type": "AUTO",
? ? "doctype": "json",
? ? "key": "www",
? ? "ue": "UTF-8",
}
url = "http://auto-installment/v1/loan-credit-check"
response = requests.post(url,data = data,headers=headers)
?
print(response.text)#顯示返回結(jié)果
print(response.json())# 如果是json文件可以直接顯示

注意:

打印的結(jié)果出現(xiàn)中文亂碼,使用json.dupms(response, ensure_ascii=False))解決

Session

一般利用Session在跨請求的時(shí)候保持某些參數(shù),比如實(shí)現(xiàn)登錄后才能訪問其他頁面

# 1. 創(chuàng)建session對象,可以保存Cookie值
session = requests.session()
?
# 2. 需要登錄的用戶名和密碼
data = {"username": "mxxxx", "password": "1233444"}
?
# 3. 發(fā)送附帶用戶名和密碼的請求,并獲取登錄后的Cookie值,保存在ssion里
session.post("https://www.jianshu.com/sign_in", data=data)
?
# 4. ssion包含用戶登錄后的Cookie值,可以直接訪問那些登錄后才可以訪問的頁面
response = session.get("https://www.jianshu.com/writer#/")

踩坑記要

1.在使用requests去請求一個(gè)接口時(shí),出現(xiàn)報(bào)錯(cuò)的情況,但是這個(gè)接口本身卻沒有問題。這是因?yàn)榻涌诘恼埱髤?shù)有兩種情況:簡單類型(一般少于3個(gè))和復(fù)雜對象類型。

解決方法:在headers中定義一下這兩種參數(shù)的類型

簡單類型:headers={"Content-Type": "application/x-www-form-urlencoded"}

復(fù)雜對象類型:headers={"Content-Type":application/json}

2.某些HTTPS請求存在 SSL證書驗(yàn)證

解決方法:response = requests.get("https://www.baidu.com/", verify=False)

擴(kuò)展

1.requests請求失敗后,增加重試機(jī)制(若失敗,將會(huì)重試3次)

request_retry = requests.adapatrs.HTTPAdapaters(max_retries=3)
session.mount('https://',request_retry) ?

2.使用grequests實(shí)現(xiàn)異步請求

urls = [
? ? 'http://www.url1.com',
? ? 'http://www.url2.com',
? ? 'http://www.url3.com',
? ? 'http://www.url4.com',
? ? 'http://www.url5.com',
]
resp = (grequests.get(u) for u in urls)
grequests.map(resp)

3.自定義cookies

我們使用Session實(shí)例來保持請求之間的cookies,但是有些特殊情況,需要使用自定義的cookies

我們使用Session實(shí)例來保持請求之間的cookies,但是有些特殊情況,需要使用自定義的cookies

# 自定義cookies
cookie = {'guid':'5BF0FAB4-A7CF-463E-8C17-C1576fc7a9a8','uuid':'3ff5f4091f35a467'}
?
session.post('http://', cookies=cookie)

4.統(tǒng)計(jì)一個(gè)API請求花費(fèi)的時(shí)間

session.get(url).elapsed.total_seconds()?

5.設(shè)置請求超時(shí)

session.get(url, timeout=15)

6.文件上傳

Requests利用files作為參數(shù)模擬提交文件數(shù)據(jù)

file = {'file':open('test.bmp','rb')} ? #rb表示用二進(jìn)制格式打開指定目錄下的文件,且用于只讀
r =requests.post('http://',files=file)
print(r.text)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何在windows下安裝配置python工具Ulipad

    如何在windows下安裝配置python工具Ulipad

    這篇文章主要介紹了如何在windows下安裝配置python工具Ulipad,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python字典改變value值方法總結(jié)

    python字典改變value值方法總結(jié)

    在本文里小編給大家分享了關(guān)于python字典如何改變value值的相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • Python如何執(zhí)行系統(tǒng)命令

    Python如何執(zhí)行系統(tǒng)命令

    這篇文章主要介紹了Python如何執(zhí)行系統(tǒng)命令,幫助大家更好的利用python操作系統(tǒng),感興趣的朋友可以了解下
    2020-09-09
  • python openpyxl篩選某些列的操作

    python openpyxl篩選某些列的操作

    這篇文章主要介紹了python openpyxl篩選某些列的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹

    Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹

    這篇文章主要介紹了Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-08-08
  • Python在報(bào)表自動(dòng)化的優(yōu)勢及實(shí)現(xiàn)流程

    Python在報(bào)表自動(dòng)化的優(yōu)勢及實(shí)現(xiàn)流程

    本文利用Python實(shí)現(xiàn)報(bào)表自動(dòng)化,通過介紹環(huán)境設(shè)置、數(shù)據(jù)收集和準(zhǔn)備、報(bào)表生成以及自動(dòng)化流程,展示Python的靈活性和豐富的生態(tài)系統(tǒng)在報(bào)表自動(dòng)化中的卓越表現(xiàn),從設(shè)置虛擬環(huán)境到使用Pandas和Matplotlib處理數(shù)據(jù),到借助APScheduler實(shí)現(xiàn)定期自動(dòng)化,每個(gè)步驟都得到詳盡闡述
    2023-12-12
  • python自動(dòng)化測試selenium操作下拉列表實(shí)現(xiàn)

    python自動(dòng)化測試selenium操作下拉列表實(shí)現(xiàn)

    這篇文章主要為大家介紹了python自動(dòng)化測試selenium操作下拉列表實(shí)現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 基于Python數(shù)據(jù)可視化利器Matplotlib,繪圖入門篇,Pyplot詳解

    基于Python數(shù)據(jù)可視化利器Matplotlib,繪圖入門篇,Pyplot詳解

    下面小編就為大家?guī)硪黄赑ython數(shù)據(jù)可視化利器Matplotlib,繪圖入門篇,Pyplot詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Python使用TextRank算法提取關(guān)鍵詞

    Python使用TextRank算法提取關(guān)鍵詞

    textrank是在pagerank的基礎(chǔ)上提出來的。PageRank對于每個(gè)網(wǎng)頁頁面都給出一個(gè)正實(shí)數(shù),表示網(wǎng)頁的重要程度,PageRank值越高,表示網(wǎng)頁越重要,在互聯(lián)網(wǎng)搜索的排序中越可能被排在前面
    2022-12-12
  • Python StringIO及BytesIO包使用方法解析

    Python StringIO及BytesIO包使用方法解析

    這篇文章主要介紹了Python StringIO及BytesIO包使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評論

伊春市| 东明县| 芜湖市| 清水县| 巴中市| 蚌埠市| 炉霍县| 拉萨市| 九江市| 镇巴县| 东港市| 枝江市| 邵阳市| 太保市| 连南| 通城县| 汾西县| 筠连县| 额济纳旗| 那坡县| 光山县| 漳浦县| 文昌市| 乳山市| 繁峙县| 靖州| 凯里市| 杭锦后旗| 德安县| 巨鹿县| 肥城市| 海淀区| 兴海县| 张家港市| 伊通| 苍梧县| 荃湾区| 中宁县| 乌兰浩特市| 宁陵县| 瑞丽市|