欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

requests

程序员文章站 2022-05-07 10:56:25
...

安装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方式请求资源。