requests

安装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': '[email protected]', '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方式请求资源。

你可能感兴趣的:(requests)