requests模块get请求
1.步骤
步骤:
1.导包
import requests
2.确定请求的url
base_url=''
3.发送请求,获取响应
response=requests.get(
base_url, #请求的url
headers={
}, #请求头
params={
}, #请求参数字典
)
4. 直接将获取的数据输出,但可能会出现乱码
print(response.text)
将获取的数据解码后输出
print(response.content.decode("utf-8"))
将获取的数据保存在index.html文件中
with open("index.html","w",encoding="utf-8") as fp:
fp.write(response.content.decode("utf-8"))
2.response对象包含的内容
1.状态码
response.status_code
2.响应头
response.headers["cookie"]
3.响应正文
(1)获取字符串类型的响应正文
response.text
(2)获取bytes类型的响应正文
resonse.content
(3)响应正文字符串编码
response.encoding
(4)响应内容的乱码问题:
当我们用response.text获取字符串的响应正文的时候,有时候会出现乱码:
原因是response.encoding这个字段默认指定编码有误。
解决办法:
方法一 就是手动指定 response.encoding = ‘utf-8’
方法二 response.content.decode('utf-8')
3.get请求的项目类别
1.没有请求参数的,比如百度和百度产品这两个项目,我们只需要添加请求头,封装user-agent这个请求头就可以了。
实例1
#1.导包
import requests
#2.确定url
base_url='https://www.baidu.com/more/'
#3.发送请求,获取响应
response=requests.get(base_url)
#解决乱码
#方法一
# response.encoding="utf-8"
# print(response.text)
# print(response.encoding)
with open("index.html","w",encoding="utf-8") as fp:
fp.write(response.content.decode("utf-8")) #解决乱码方法二
实例2
import requests
#确定url
base_url='https://www.cnblogs.com/panlq/p/9307203.html'
#封装请求头字典
headers={
"USer-Agent":'Mozilla/5.0 (Windows NT 6.1; Win64; x64) A