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

python requests模塊的使用示例

 更新時間:2021年04月07日 15:27:03   作者:風(fēng)`  
這篇文章主要介紹了python requests模塊的使用解析,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

為什么使用requests:

  • 支持使用Cookie保持會話
  • 支持文件上傳
  • 支持自動確定響應(yīng)內(nèi)容的編碼
  • 對用戶來說比較人性化

模擬get請求:

獲取token

# 使用微信公眾平臺舉例
get_param_dict={
 "grant_type":"**************",
 "appid":"**************",
 "secret":"**************",
}
response = requests.get(url='https://api.weixin.qq.com/cgi-bin/token', # url地址
      params=get_param_dict) # 參數(shù)
print(response.content.decode('utf-8'))

模擬請求頭部信息

注:因為requests請求頭是以python,requests發(fā)起的,所以大部分接口都會需要手動添加頭部信息

# get 模擬請求頭部信息,(當(dāng)你發(fā)現(xiàn)數(shù)據(jù)不對時,就模擬)
# 以百度舉例
get_param_dict ={
 "wd":"newdream"
}
# 添加頭部信息字典(可以使用抓包抓取到頭部信息)
header_info_dict = {
 "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36",
 "Accpet":"text/plain, */*; q=0.01"
}
response = requests.get(url = 'https://www.baidu.com/s',
      params=get_param_dict,headers=header_info_dict)
print(response.content.decode('utf-8'))

模擬post請求

import requests,json
# requests模擬發(fā)送post請求
# 使用微信公眾平臺舉例
url_param_doct = {"access_token": "43_XcK_1rvR8VPgicGGzq7Vp2QrGx30Kwhy9SSShoVTQs11G_jP9aqhy2bwRQFuG2hYzkwVjphJFfPj8WYQR8vgfu5Xej7KaZBiyPDJ9sYoCKte78sqgtBdCf6N5S8QosNXBOFSEJnzLMbxJwCOTWAgAAANQU"}
post_param_data = {
 "tag" : {  "name" : "我是新標(biāo)簽" }
}
response = requests.post(url='https://api.weixin.qq.com/cgi-bin/tags/create',
       params=url_param_doct,
       # json=post_param_data # 可以使用json
       data=json.dumps(post_param_data) # 也可以使用data,但是data要求是字符串,需要使用json模塊dumps轉(zhuǎn)化
       )
print(response.content.decode('utf-8'))

requests上傳文件

import requests,os
# post上傳文件
current_path = os.path.dirname(__file__) # os模塊定位當(dāng)前路徑
excel_path = os.path.join(current_path,'..','data','j.xlsx') # join拼接
excel_file = {'file':open(excel_path,'rb')} # 做成字典,open打開文件 rb:只讀二進制
response = requests.post(url='https://2.python-requests.org/', # requests官方實例文檔地址
       files=excel_file) # files傳文件
print( response.content.decode('utf-8') )

requests設(shè)置代理

import requests
# 設(shè)置代理:為什么設(shè)置代理?
# 爬蟲類項目,有檢測機制
# 防止公司系統(tǒng)有防灌水功能

proxy_server = {'http':'http://127.0.0.1:8888',
    'https':'http://127.0.0.1:8888'} # 做一個字典
proxy_user_pass = {
 'https':'http://uesrname:password@127.0.0.1:8888' # 需要用戶跟密碼使用這個
}
response = requests.get(url= 'https://baidu.com',
      proxies=proxy_server) # proxies設(shè)置代理關(guān)鍵字
print(response.status_code)

time模塊設(shè)置請求超時

如果一個請求很久沒有結(jié)果,就會讓整個項目的效率變得非常低,這個時候我們就需要對請求進行強制要求

讓他必須在特定的時間內(nèi)返回結(jié)果,否則就報錯。

# 設(shè)置請求超時
import requests
import time
print(time.time()) # 時間戳
response = requests.get(url='https://www.baidu.com',timeout=3) # timeout=3: 請求如果在規(guī)定時間之內(nèi)(3秒鐘內(nèi))沒有得到響應(yīng),就會拋出超時錯誤
print(time.time())

retrying模塊設(shè)置刷新

使用超時參數(shù)能夠加快我們整體的請求速度,但是在正常的網(wǎng)頁瀏覽過成功,如果發(fā)生速度很慢的情況,我們會做的選擇是刷新頁面

retrying模塊就可以幫助我們解決。使用retrying模塊提供的retry模塊

通過裝飾器的方式使用,讓被裝飾的函數(shù)反復(fù)執(zhí)行retry中可以傳入?yún)?shù)stop_max_attempt_number,讓函數(shù)報錯后繼續(xù)重新執(zhí)行

達到最大執(zhí)行次數(shù)的上限,如果每次都報錯,整個函數(shù)報錯,如果中間有一個成功,程序繼續(xù)往后執(zhí)行。

import requests
from retrying import retry


# 如果函數(shù)連續(xù)調(diào)用三次都報錯,才會報錯,如果三次之中有一次成功,就成功
@retry(stop_max_attempt_number=3)
def get_response(url):
 response = requests.get(url, timeout=2)
 return response
retrying_requests = get_response("https://www.baidu.com")
print(retrying_requests.content.decode())

cookie設(shè)置

好處:能夠訪問登錄后的頁面

壞處:一套cookie往往對應(yīng)的是一個用戶的信息,請求太頻繁有更大的可能性被對方識別為爬蟲
如何解決 ?使用多個賬號

# 使用requests提供的session模塊
import requests
# 構(gòu)造formdata表單數(shù)據(jù),填寫自己的賬號和密碼
post_data = {
 "username": "xxxxx",
 "password": "xxxxx"
}
# session的使用: 在請求之前創(chuàng)建session對象
session = requests.Session()
# 后續(xù)的請求都由session來發(fā)起,因為session中保存了用戶的登陸信息
session.post(url="https://www.baidu.com", data=post_data)
response = session.get("https://www.baidu.com")
# 使用session請求登陸后的界面
print(response.content.decode())

處理證書認(rèn)證錯誤

import requests
# 方式一:不驗證證書,報警告,返回200
requests.packages.urllib3.disable_warnings()# 直接解決爆紅警告

# 方式二不驗證證書,報警告,返回200 ,后面拼接verify=False,加這個控制臺報警的話,就在加上方式一
response = requests.get('https://www.12306.cn',verify=False)
print(response.content.decode('utf-8'))

# 方式三:安裝pyopenssl 安裝之后就不會報錯# pip3 install -U requests[security] 
response = requests.get('https://www.12306.cn')
print(response.content.decode('utf-8'))

# 方式四: 加上證書 公司內(nèi)部 問開發(fā)要xxx.crt文件 ,最穩(wěn)妥
response = requests.get('https://www.12306.cn',cert=('/path/server.crt', '/path/key'))

requests+jsonpath解析數(shù)據(jù)

hosts = 'https://api.weixin.qq.com' # 主機地址
# 獲取token
get_param_dict = {
 "grant_type":"**********",
 "appid":"*************",
 "secret":"***************"
}
response = requests.get('%s/cgi-bin/token'%hosts,params=get_param_dict)
json_obj = response.json()
 # json數(shù)據(jù)解析:從一個json體中取出需要的數(shù)據(jù),就叫json數(shù)據(jù)解析
token_id = jsonpath.jsonpath(json_obj,'$.access_token')[0] # 接口依賴,接口關(guān)聯(lián)
print(token_id)

以上就是python requests模塊的使用的詳細(xì)內(nèi)容,更多關(guān)于python requests模塊的使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • keras CNN卷積核可視化,熱度圖教程

    keras CNN卷積核可視化,熱度圖教程

    這篇文章主要介紹了keras CNN卷積核可視化,熱度圖教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python3 使用pip安裝git并獲取Yahoo金融數(shù)據(jù)的操作

    Python3 使用pip安裝git并獲取Yahoo金融數(shù)據(jù)的操作

    這篇文章主要介紹了Python3 使用pip安裝git并獲取Yahoo金融數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • rhythmbox中文名亂碼問題解決方法

    rhythmbox中文名亂碼問題解決方法

    在使用rhythmbox過程中,出現(xiàn)了,如果是中文名則會出現(xiàn)亂碼,下面的方法即可解決
    2008-09-09
  • selenium+python自動化測試之多窗口切換

    selenium+python自動化測試之多窗口切換

    這篇文章主要介紹了selenium+python自動化測試之多窗口切換,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 淺談python中對于json寫入txt文件的編碼問題

    淺談python中對于json寫入txt文件的編碼問題

    今天小編就為大家分享一篇淺談python中對于json寫入txt文件的編碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python Anaconda創(chuàng)建虛擬環(huán)境及Pycharm使用虛擬環(huán)境詳解

    Python Anaconda創(chuàng)建虛擬環(huán)境及Pycharm使用虛擬環(huán)境詳解

    文章介紹了如何使用Anaconda創(chuàng)建和管理Python虛擬環(huán)境,并如何在Pycharm中使用這些環(huán)境,這包括創(chuàng)建、激活、退出、刪除、克隆和重命名虛擬環(huán)境的命令,以及如何查看和管理已安裝的Python包,此外,還涉及了如何在Pycharm中配置和使用這些虛擬環(huán)境
    2025-10-10
  • 最新評論

    栾城县| 上饶县| 岳阳县| 镇赉县| 老河口市| 正安县| 六安市| 安庆市| 淮南市| 万州区| 忻城县| 通江县| 阿勒泰市| 红原县| 大兴区| 得荣县| 溆浦县| 咸阳市| 乾安县| 祁东县| 犍为县| 莎车县| 都江堰市| 定远县| 广丰县| 盱眙县| 咸宁市| 阿勒泰市| 宁城县| 泸州市| 甘南县| 财经| 伊宁县| 益阳市| 龙井市| 饶阳县| 宜黄县| 凤庆县| 来凤县| 伊宁市| 伊宁市|