首先,确保:
已安装请求
请求是最新的
让我们开始一些简单的例子。
发出请求
使用请求发出请求非常简单。
首先导入Requests模块:
import requests
现在,让我们尝试获取一个网页。在这个例子中,让我们获取GitHub的公共时间表:
r = requests.get(‘https://api.github.com/events’)
现在,我们有一个Response名为的对象r。我们可以从这个对象获得我们需要的所有信息。
请求的简单API意味着所有形式的HTTP请求都是显而易见的。例如,这是您发出HTTP POST请求的方式:
r = requests.post(‘https://httpbin.org/post’, data = {‘key’:‘value’})
很好,对吧?其他HTTP请求类型怎么样:PUT,DELETE,HEAD和OPTIONS?这些都很简单:
r = requests.put(‘https://httpbin.org/put’, data = {‘key’:‘value’})
r = requests.delete(‘https://httpbin.org/delete’)
r = requests.head(‘https://httpbin.org/get’)
r = requests.options(‘https://httpbin.org/get’)
这一切都很好,但它也只是请求可以做的开始。
在URL中传递参数
您经常希望在URL的查询字符串中发送某种数据。如果您手动构建URL,则此数据将在问号后面的URL中作为键/值对给出,例如httpbin.org/get?key=val。请求允许您使用params关键字参数将这些参数作为字符串字典提供。举个例子,如果你想传递 key1=value1和key2=value2对httpbin.org/get,你可以使用下面的代码:
payload = {‘key1’: ‘value1’, ‘key2’: ‘value2’}
r = requests.get(‘https://httpbin.org/get’, params=payload)
您可以通过打印URL看到URL已正确编码:
print(r.url)
https://httpbin.org/get?key2=value2&key1=value1
请注意,任何值为的字典键None都不会添加到URL的查询字符串中。
您还可以将项目列表作为值传递:
payload = {‘key1’: ‘value1’, ‘key2’: [‘value2’, ‘value3’]}
r = requests.get(‘https://httpbin.org/get’, params=payload)
print(r.url)
https://httpbin.org/get?key1=value1&key2=value2&key2=value3