requests模塊參數(shù)詳解,代理設(shè)置proxies

import requests
print(dir(requests))
# 2、參數(shù)
requests.get(
    url="http://www.baidu.com",
    headers="",
    cookies="",
    params={"k1":"v1","k2":"v2"},
    # url中傳遞的參數(shù),效果如下
    # http://www.baidu.com?k1=v1&k2=v2
)
requests.post(
    url="",
    headers="",
    cookies="",
    data={
    },
    params={"k1": "v1", "k2": "v2"},
    # url中傳遞的參數(shù),效果如下
    # http://www.baidu.com?k1=v1&k2=v2
)
 
# 我們可以通過(guò)data傳遞請(qǐng)求體,也可以通過(guò)json傳遞請(qǐng)求體
 
data = {
        "username":"admin",
        "pwd":"admin"
       },
 
# 則請(qǐng)求體中的數(shù)據(jù)為username=admin&pwd=admin

# 參數(shù)代理
 
    # 定義一個(gè)字典
proxies = {
    "http": "http://127.0.0.1:8888",
    "https": "http://127.0.0.1:8888",
}
 
 
 
# http請(qǐng)求走h(yuǎn)ttp對(duì)應(yīng)的地址,https請(qǐng)求走h(yuǎn)ttps對(duì)應(yīng)的地址,在訪問(wèn)的請(qǐng)求中加一個(gè)proxies的參數(shù)
l1 = requests.get(url="https://passport.lagou.com/login/login.html",
                  headers={
                      "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
                  },
                  proxies = proxies
                  )
 
# 給代理加認(rèn)證
from requests.auth import HTTPProxyAuth
proxies = {
    "http": "http://127.0.0.1:8888",
    "https": "http://127.0.0.1:8888",
}
auth = HTTPProxyAuth("username","passwd")

# http請(qǐng)求走h(yuǎn)ttp對(duì)應(yīng)的地址,https請(qǐng)求走h(yuǎn)ttps對(duì)應(yīng)的地址,在訪問(wèn)的請(qǐng)求中加一個(gè)proxies的參數(shù),在加一個(gè)參數(shù)auth,這個(gè)是登陸代理的用戶名和密碼
l2 = requests.get(url="https://passport.lagou.com/login/login.html",
                  headers={
                      "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
                  },
                  proxies = proxies,
                  auth = auth
                  )
 
 
# 參數(shù)文件上傳,post方法發(fā)送請(qǐng)求,傳遞一個(gè)file的參數(shù)
 
files = {
    "pic": ("test.gif", open("test.gif", "rb"), "images/git")
}
l3 = requests.post(url="https://passport.lagou.com/login/login.html",
                  headers={
                      "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
                  },
                  proxies = proxies,
                  auth = auth,
                  files = files
                  )
 

 
# 參數(shù)認(rèn)證
from requests.auth import HTTPBasicAuth
from requests.auth import HTTPDigestAuth
 
l5 = requests.get(url="https://passport.lagou.com/login/login.html",
                  headers={
                      "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
                  },
                  proxies = proxies,
                  auth = HTTPBasicAuth("admin","admin")
                  )
 
 
# 超時(shí)參數(shù)
l6 = requests.get(url="https://passport.lagou.com/login/login.html",
                  headers={
                      "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
                  },
                  timeout = 2
                  )
 
# 超時(shí)時(shí)間為2s,2s連不上返回錯(cuò)誤
 
 
# 允許重定向
l7 = requests.get(url="https://passport.lagou.com/login/login.html",
                  headers={
                      "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
                  },
                  allow_redirects = False
                  )
 
 
# stream大文件下載的參數(shù),把文件一點(diǎn)一點(diǎn)的下載,如果這個(gè)值為false,則全部寫到內(nèi)存中了
from contextlib import closing
with closing(requests.get("http://ddddddd",stream=True)) as f:
    for i in f.iter_content():
        print(i)
 
 
# cert,證書參數(shù),告訴request去這個(gè)地方去下載cert
l8 = requests.get(url="https://passport.lagou.com/login/login.html",cert="xxx/xxx/xxx/xxx/pem")
 
l9 = requests.get(url="https://passport.lagou.com/login/login.html",cert=("xxx/xxx/xxx/xxx/pem","yyy/yyy/yyy.key"))
 
 
# session,為我們自動(dòng)帶上cookies和請(qǐng)求頭
import requests
session = requests.session()
 
i1 = session.get(url="")
 
 
i2 = session.post(
    url="",
    data={}
)
 
i3 = session.post()                   
                   

通過(guò)request發(fā)送post請(qǐng)求,什么時(shí)候使用data參數(shù),什么時(shí)候使用json參數(shù)呢,可以通過(guò)抓包來(lái)分析

在chrom瀏覽器中,數(shù)據(jù)格式為Form Data,如果通過(guò)requests發(fā)送數(shù)據(jù),則用data來(lái)發(fā)送數(shù)據(jù)

在chrom瀏覽器中,數(shù)據(jù)格式為Request Payload,如果通過(guò)requests發(fā)送,則用json來(lái)發(fā)送數(shù)據(jù)

如果傳遞的json格式,但是數(shù)據(jù)有中文呢就額可以使用下面的方式來(lái)發(fā)送數(shù)據(jù)

data = bytes(json.dumps(
     data_dict,
     ensure_ascii=False
 ),encoding="utf-8")

設(shè)置代理模式

設(shè)置 proxy

import requests
proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
requests.get('http://example.org', proxies=proxies)
import requests
s = requests.Session()
s.proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
requests.get('http://example.org')

設(shè)置 SSL 證書

使用文本格式的 PEM。

import requests
proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
requests.get('http://example.org', proxies=proxies, verify='/path-to/charles-ssl-proxying-certificate.pem')
import requests
s = requests.Session()
s.proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
s.verify='/path-to/charles-ssl-proxying-certificate.pem'
requests.get('http://example.org')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容