搜索
您的当前位置:首页正文

Python-Requests请求

来源:哗拓教育

1.使用requests

要通过GET访问一个页面,只需要几行代码:

import requests
r = 
requestCode = r.status_code
print('请求状态值:',requestCode)
requestData = r.text
# print('请求 Data',requestData);

2.对于带参数的 URL,传入一个 dict 作为 params 参数

r1 = 
requestsUrl = r1.url
print('请求的 url:',requestsUrl)
#requests自动检测编码,可以使用 encoding 属性来查看:    
requestsEncode = r.encoding
print('requests自动检测编码:',requestsEncode)
# 无论响应是文本还是二进制内容,我们都可以用 content 属性获得 bytes 对象
requestsBytes = r.content
# print('requests bytes 对象:',requestsBytes)

3.requests的方便在于对于特定类型的响应,例如 JSON,可以直接获取

r2 =  
requestsJson = r2.json()
# print('requestsJson:',requestsJson)

4.需要传入HTTP Header时,我们传入一个dict作为headers参数:

r3 =  'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'}) 
requestsText = r3.text
# print('requestsText:',requestsText)

5.要发送POST请求,只需要把get()方法变成post(),然后传入data参数作为POST请求的数据:

r4 =  data={'form_email':  'form_password': '123456'})
requestsR4 = r4.text
# print('requestsR4:',requestsR4)

    。如果要传递JSON数据,可以直接传入json参数:

params = {'key':'value'}
r5 = requests.post(url,json=params)#内部自动序列化 JOSN
# 类似的,上传文件需要更复杂的编码格式,但是requests把它简化成files参数:
upload_files = {'file':open('report.xls','rb')}
r6 = requests.post(url,file=upload_files)

在读取文件时,注意务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。

把post()方法替换为put(),delete()等,就可以以PUT或DELETE方式请求资源。

除了能轻松获取响应内容外,requests对获取HTTP响应的其他信息也非常简单。例如,获取响应头:

requestsHeaders = r4.headers
print('requestsHeaders:',requestsHeaders)

requests对Cookie做了特殊处理,使得我们不必解析Cookie就可以轻松获取指定的Cookie:
requestsCookies = r3.cookies['ts']
print('requestsCookies:',requestsCookies)

要在请求中传入Cookie,只需准备一个dict传入cookies参数:

url = 
cs = {'token':'12345','status':'working'}
r6 = requests.get(url,cookies=cs)
print('requestsr6:',r6.content)

最后,要指定超时,传入以秒为单位的timeout参数:

r7 =  requests.get(url,timeout=2.5)
print('requestsr7:',r7.text)

6.获取请求头

rd =  params={'q':'python', 'cat':'1001'})
print(rd.status_code, rd.url)
h = rd.headers
print('练习一:获取请求头')
for k, v in h.items():
    print(k,': ', v)

详细文件移步

Top