之前把日常的工作所需都说完了,但是还是会有一些比较特别的例子存在......
一、发送文件给服务器
多用于上传头像,文件给服务器的情况
import requests # 导入requests库
host = 'https://oigfn.io/'
header = {'Authorization': '4e804bd3510000a8e8'}
with open('/8b251ce5706640a4a4d6f9b29e46f6c5.png', 'rb') as f:
r2 = requests.post(host + '/v1/files/icon', headers=header, files={'icon': f})
print(r2.json())
这样就可以上传文件成功了,关键字是请求时带files
二、发送Cookie
import requests # 导入requests库
# 如果不添加cookie、user-agent直接请求百度
r2 = requests.get('https://www.baidu.com',timeout=0.02)
print(r2.text)
不添加cookie将会得到一个最基本的的百度页面
import requests # 导入requests库
# 添加cookie、user-agent请求百度
header = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'}
cookie = 'BAIDUID=E303FC54F994783A55873:FG=1; PSTM=1557042570; BIDUPSID=DB141F776D2A77ED06; MCITY=-%3A; sug=3; sugstore=0; ORIGIN=2; bdime=0; BD_UPN=123253; BDORZ=B490B5E402E515BCDA1598; BDSFRCVID=ic8OJeC62iz-PROrQ1GEMZzkG3WoUeQTH6aoIXxLUdY8WHGrnjgWEG0PHx8g0Ku-5aULogKK3gOTH4PF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tbkD_C-MfIvDqTrP-trf5D3h3rB2Q-XPoO3KOrDfb_KlLM0JDIWl6W05jiWbRM2MbgyUA1y4vpWj3qKVDq5mqfCWMR-ebPRiJPb9Qg-qahQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0hI0ljj82e5hJOZbq_JLGQuOIJTXpOUWfAkXpJvQnJjt2JxaqRCBDb-Vh5jDh3MBpQDhtoJexIO2jvy0hvctn3cNcZ0l8K3l02V-bIe-t2XjQhDNtDt60jfn3aQ5rtKRTffjrnhPF3QMn3XP6-hnjy3b7dWxbF-fDMVqTEWR6OQTDUyN3Mv4X60B0-oxJpOJXaILWl52HlFWj43vbURvD--g3-AqBM5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIEoK0hJC-2bKvPKITD-tFO5eT22-us5R4j2hcHMPoosbJi0btQDPvxBf7pBJnqbp5TtUJM_UKzhfoMqfTbMlJyKMnitIv9-pPKWhQrh459XP68bTkA5WDTQQjNRf-b-XaKo-QnRa-5rjDnCrMt-WXUI8LNDHaRILLNr9QfDh3h5YooyWGbO2U5eyCnROh34h46J3UL1Db37hTvMtg3tsC5qQlRoepvoDPJc3Mv30-jdJJQOBKQB0KnGbUQkeq8CQft20b0EeMtjW6LEK5r2SCD-tI0a3f; delPer=0; BD_CK_SAM=1; BD_HOME=1; COOKIE_SESSION=224_0_9_9_33_41_0_7_9_7_0_1_80418_0_95_0_1595559103%7C9%231208448_205_1595384797%7C9; PSINO=7; H_PS_PSSID=32292_1422_31672_32355_31254_32045_32115_31708_26350_31640; BDRCVFR[S4-dAuiWMmn]=I67x6TjHwwYf0; H_PS_645EC=b5d7MS3jZHxowSklv8tbM%2BBLd6V7plv6RTRuMq8Wlu8UtTAkcXQ'
cookie_dic = {i.split('=')[0]:i.split('=')[1] for i in cookie.split(';')}
# print(cookie_dic)
r1 = requests.get('https://www.baidu.com',cookies=cookie_dic,timeout=0.02,headers=header)
print(r1.text)
这时候会得到一个定制的百度页面;且我在请求中加入了timeout
超时管理的字段(s),有时带有cookie的请求可以让请求更加快,导致r2请求失败了,但是r1请求是成功的。
三、添加身份认证
有些网页需要进入时作身份认证,证明你是管理人员,这类接口需要用到一个特别的关键字auth
处理
import requests # 导入requests库
from requests.auth import HTTPBasicAuth # 身份认证
r3 = requests.get('http://192.168.1.1/all',auth=HTTPBasicAuth('root','123456'))
print(r3.json())