安装requests
pip install requests
使用requests
GET请求
import requests
r = requests.get('https://www.douban.com/')
# 对于带参数的URL,传入一个dict作为params参数
r = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
r.url
# 对于特定类型的响应,例如JSON,可以直接获取
r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
r.json()
# 需要传入HTTP Header时,我们传入一个dict作为headers参数
r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
# 传入Cookie
cs = {'token': '12345', 'status': 'working'}
r = requests.get(url, cookies=cs)
# 指定超时
r = requests.get(url, timeout=2.5) # 2.5秒后超时
r.status_code
r.text
r.encoding
r.content # 获取bytes对象
r.headers # 获取headers
r.cookies['ts'] # 获取cookies
POST请求
import requests
r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password': '123456'})
# requests默认使用application/x-www-form-urlencoded对POST数据编码。
# 如果要传递JSON数据,可以直接传入json参数
params = {'key': 'value'}
r = requests.post(url, json=params) # 内部自动序列化为JSON
# 上传文件
upload_files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=upload_files)
在读取文件时,注意务必使用'rb
'即二进制模式读取,这样获取的bytes长度才是文件的长度。
把post()
方法替换为put()
,delete()
等,就可以以PUT或DELETE方式请求资源。
网友评论