requests发送请求:
- 导入模块:
import requests
- 基本格式:
requests.xxx(url,headers,params...)
xxx
是http的请求类型 -> get
,put
,post
,delete
…
- 参数讲解:
url
:需要发起请求的链接headers
:构建请求URL时的消息头,字典格式params
:添加请求URL时的参数,字典格式proxies
:添加代理服务器,字典格式data
:将放进data的数据转换为form表单数据
data.encode('utf8')
:默认的字符编码是latin-1
json
:将json对应的数据放进json参数里
timeout
:设置超时时间
- 案例:
import requests
query = input("请输入要搜索的人名:")
url = f'https://cn.bing.com/search?q={query}'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.40'
}
res = requests.get(url, headers=headers)
print(res.text)
res.close()
requests接收数据:
- 实例化对象:
res = requests.get(url,headers,params...)
requests
接收响应数据的方法:
res.text
:获取响应体的文本内容res.status_code
:获取响应体的状态码res.headers
:获取响应体的消息头
- 可用字典方式进行查找(继承字典类型),可用
dict(res.headers)
转换为字典类型
res.encoding
:消息体的编码方式
res.encoding = 'utf8'
把编码转为utf8
res.content
:获取原始二进制数据
res.content.decode('utf8')
:将原始字节码转换为utf8
res.json()
:接收json格式的数据,转换成字典返回res.cookies
:获取服务器返回的cookies值
import requests
url = "https://movie.douban.com/j/new_search_subjects"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.40"
}
params = {
"sort": "U",
"range": "0,10",
"tags": "",
"start": 0,
"genres": "动画"
}
res = requests.post(url, params=params, headers=headers)
print(res.text)
res.close()
Session类
session
会话对象可以跨请求保持某些参数,比如在同一个session实例发出的所有请求之间保持cookie信息。
import requests
data = {
'username':'root',
'password':'admin'
}
session = requests.Session()
res = session.post("url",data=data)
print(res.status_code)
res1 = session.get("url")
print(res1)