1. requests模块用来发送网络请求。
首先需要安装requests模块: pip install requests
2. 发送请求
2.1 get请求
__author__ = 'WJ'
import requests
res = requests.get('''https://www.baidu.com/''')
print (res)
res.encoding = 'utf-8' //需要先进行设置编码格式,否则,rex.text会打印出来乱码
print (res.text)
如果以上转码之后还会打印乱码,则采用一下方式:
#*-*coding=utf-8-*-
import io
import sys
import requests
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') #改变输出的默认编码格式
res = requests.get ('''https://www.sina.com.cn/ ''')
a = res.text
print (a)
#一定需要encoding = utf-8 这个参数,否则写入文件的时候会报错
with open('text.txt','a',encoding='utf-8') as e:
e.write(a)
传参数:
params = {'key1':'aa','key2':'bb'}
res = requests.get ('''https://www.sina.com.cn/ ''',params=params)
print (res.url)
参数也可以是一个列表。
这样会得到一下一个请求:
"http://httpbin.org/get"?key1=value1?key2=value2
2.2 其他请求
r = requests.post('http://httpbin.org/post', data = {'key':'value'}) r = requests.put('http://httpbin.org/put', data = {'key':'value'}) r = requests.delete('http://httpbin.org/delete') r = requests.head('http://httpbin.org/get') r = requests.options('http://httpbin.org/get')
2.3 函数
r.text 返回headers中的编码解析的结果,可以通过r.encoding = 'utf-8'来变更解码方式
r.content返回二进制结果
r.json()返回JSON格式,可能抛出异常
r.status_code
r.raw返回原始socket respons,需要加参数stream=True
响应
r.status_code
r.heards
r.cookies