目录
1. requests的作用
作用:发送网络请求,返回响应数据
中文文档 : https://www.w3cschool.cn/requests2/
通过观察文档来学习:如何使用requests来发送网络请
2. get请求
import requests
# 目标url
url = 'https://www.baidu.com'
# 向目标url发送get请求
response = requests.get(url)
# 打印响应内容
print(response.text)
2.1 response的常用属性
response.text
响应体 str类型
respones.content
响应体 bytes类型
response.status_code
响应状态码
response.request.headers
请求头
response.headers
响应头
response.cookies
响应的cookie
2.2 text 和content的区别
response.text
类型:str
解码类型: requests模块自动根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
如何修改编码方式:
response.encoding=”gbk”
response.content
类型:bytes
解码类型: 没有指定
如何修改编码方式:
response.content.deocde(“utf8”)
2.3 获取网页源码的通用方式
NO1:
response.content.decode()
NO2:
response.content.decode("GBK")
NO3:
response.text
2.4 发送带header的请求
2.4.1 headers的形式
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
2.4.2 用法
requests.get(url, headers=headers)
2.4.3 完整代码
import requests
url = 'https://www.baidu.com'
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# 在请求头中带上User-Agent,模拟浏览器发送请求
response = requests.get(url, headers=headers)
# 打印请求头信息
print(response.request.headers)
2.5 发送带参数的请求
2.5.1 请求参数
kw = {'query':'python'}
2.5.2 请求参数的用法
requests.get(url,params=kw)
2.5.3 完整代码
import requests
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
url = 'https://www.sogou.com/web?query=python'
# kw = {'query': 'python'}
# url中包含了请求参数,所以此时无需params
response = requests.get(url, headers=headers)
3. post请求
3.1 用法:
response = requests.post("http://www.baidu.com/", data = data,headers=headers)
3.2 形式:
字典:{'key':value,....}
4. 完整实例
import requests
# 获取到url
url = 'http://www.cninfo.com.cn/new/disclosure'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
data = {
'column':'szse_latest',
'pageNum':'2',
'pageSize':'30',
'sortName':'',
'sortType':'',
'clusterFlag':'true',
}
response = requests.post(url, headers=headers, data=data)
print(response.json())