一、发送请求
使用 Reuests 发送网络请求
import requests
# 获取 GitHub 的公共时间线
# So现在,我们就得到了一个名为 r 的 Response 对象
r = requests.get('https://api.github.com/events')
print('Response对象:', r.text)
# requests 的请求类型:
# GET
r_get = requests.get('http://httpbin.org/get', data={'key': 'value'})
print('r_get: ', r_get.text)
# POST
r_post = requests.post('http://httpbin.org/post', data={'key': 'value'})
print('r_post: ', r_post.text)
# PUT
r_put = requests.put('http://httpbin.org/put', data={'key': 'value'})
print('r_put: ', r_put.text)
# DELETE
r_delete = requests.delete('http://httpbin.org/delete')
print('r_delete: ', r_delete.text)
# DEAD
r_head = requests.head('http://httpbin.org/get')
print('r_head: ', r_head.text)
# OPTIONS
r_options = requests.options('http://httpbin.org/get')
print('r_options: ', r_options.text)
二、传递 URL 参数
参数拼接
import requests
def pass_parameters():
payload = {
'key1': 'value1',
'key2': 'value2'
}
r_payload = requests.get("http://httpbin.org/get", params=payload)
print("r_payload.url", r_payload.url)
三、响应内容
查看文本、编码方式、二进制响应、原始响应、保存数据流到文本中
import requests
def response_content():
r_content = requests.get('https://api.github.com/events')
# 文本式响应
r_text = r_content.text
print("r_text: ", r_text)
# 查看文本编码
r_coding = r_content.encoding
print("r_coding: ", r_coding)
# 二进制响应内容
r_content = r_content.content
print("r_content: ", r_content)
# JSON响应内容(AttributeError: 'bytes' object has no attribute 'json')
# r_json = r_content.json
# print("r_json: ", r_json)
# 原始响应内容
r_origin = requests.get("https://api.github.com/events", stream=True)
r_raw = r_origin.raw
r_raw_read = r_raw.read(10)
print("r_raw: ", r_raw)
print("r_raw_read: ", r_raw_read)
# 将数据流保存到文本中
with open('r_content.txt', 'wb') as fb:
for chunk in r_origin.iter_content(50):
fb.write(chunk)
response_content()