python基础之Requests库

Requests库

Requests库可以帮我们发送http的请求,并处理服务器给我们的响应
不只是浏览器可以通过http协议发送网络请求并获取返回的数据,postman,Jmeter,智能手表等都可以
python的requests库,也可以通过http协议发送网络请求,并获取返回的数据
比urllib库更加简单,使用方便,文档也很全。

requests库的官方文档:http://cn.python-requests.org/zh_CN/latest/

下载安装requests库
pip3 install requests

requests库 请求的构成

  1. url
  2. 请求方法(GET,POST,HEAD,PUT,PATCH,DELETE)
  3. 请求头(header):
    User-Agent,Refer,Cookie,Accept-Encoding,Accept-Language,
    Content-Type(application/x-www-form-urlencoded,multipart/form-data,
    application/json,application/xml)
  4. 请求体(body)
    python基础之Requests库_第1张图片

使用requests库

导入requests库
requests的各种请求方法
python基础之Requests库_第2张图片response是一个对象
python基础之Requests库_第3张图片
response中有很多内容

# 导入requests库
import requests
# 请求的代码只有这一句,但是并不是只发送了这一句,而是requests库会帮我们把该加的东西都加上
response = requests.get("https://www.baidu.com/")
# 打印response的值
# 这些都是响应里的内容
print(response)
print("url:", response.url)
print("状态码:", response.status_code)
print("text的结果:", response.text)
print("二进制格式设置编码为utf-8:", response.content.decode("utf-8"))
print("编码方式:", response.encoding)
print("服务器返回的响应头:", response.headers)
print("分析编码方式:", response.apparent_encoding)

python基础之Requests库_第4张图片

text:可以看到,response.text获取到的内容是乱码的
python基础之Requests库_第5张图片
那么可以用content的二进制格式来获取
python基础之Requests库_第6张图片
常见的字符集
utf-8,gbk,gb2312,ascii,iso-8859-1

添加请求头
用请求头把自己伪装成一个浏览器
python基础之Requests库_第7张图片
有没有请求头是不一样的
添加了请求头,是冒充了浏览器,返回的内容会多很多
没有请求头的格式是这样的,很简陋
python基础之Requests库_第8张图片
有请求头的格式是这样的
python基础之Requests库_第9张图片
给请求加参数
问号前面是路径,问号后面是参数,python是我输入的内容,那么对应值为python的键就是wd
python基础之Requests库_第10张图片

  1. 直接在url后面加
    python基础之Requests库_第11张图片
    python基础之Requests库_第12张图片
  2. 通过参数的方法
    python基础之Requests库_第13张图片
    python基础之Requests库_第14张图片
    这两种方法达到的效果是一样的

post请求
post请求是要传数据的,那么先要准备好数据

# 设置要传入的参数  form格式
data = {'name': 'lebo', 'age': '5'}
# http://httpbin.org/post 这是一个专门共=供人学习api的一个网站,能够对你的请求进行响应
response = requests.post("http://httpbin.org/post", data=data)
print(response.text)

下面是响应
python基础之Requests库_第15张图片
** json格式的post请求**
需要导入json

# json格式
# 导入JSON
import json

url_json = "http://httpbin.org/post"
data = {'name': 'lebo', 'age': '5'}
# 把字典格式转化成JSON格式
data_json = json.dumps(data)
# 这时是字符串格式而不是字典格式了
print(type(data_json), data_json)
# 发送post请求
res_json = requests.post(url=url_json, data=data_json)
print(res_json.text)

python基础之Requests库_第16张图片
用requests库爬数据
爬虫的流程:获取数据–解析提取数据–存储
利用自动的手段,把网页上的公开的数据进行收集、整理、存储。

提取html中数据的方法
BeautifulSoup,正则,XPath,CSS,Selector

存储数据
文本,csv,数据库

你可能感兴趣的:(Python,python)