美文网首页
Requests库入门

Requests库入门

作者: jdzhangxin | 来源:发表于2018-11-24 13:40 被阅读9次

Requests是用python语言基于urllib编写的HTTP库。Requests库对urllib库进行了一层包装。Requests使用比urllib更加方便,可以节约大量的工作。
Requests是python实现的最简单易用的HTTP库,建议爬虫使用Requests库。

安装

默认安装好python之后,是没有安装Requests模块的,需要单独通过pip安装。

使用

  • 基本例子
mport requests

response  = requests.get("https://www.baidu.com")
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.text)
print(response.cookies)
print(response.content)
print(response.content.decode("utf-8"))

responses使用相比urllib非常方便。需要有以下两点注意
很多情况下的网站如果直接response.text会出现乱码的问题,所以这个使用response.content这样返回的数据格式其实是二进制格式,然后通过decode()转换为utf-8,这样就解决了通过response.text直接返回显示乱码的问题.

请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当你访问 response.text 之时,Requests 会使用其推测的文本编码。你可以找出 Requests 使用了什么编码,并且能够使用 response.encoding 属性来改变它.如:

response =requests.get("http://www.baidu.com")
response.encoding="utf-8"
print(response.text)

重点
response.content.decode("utf-8)response.encoding="utf-8"都可以解决乱码问题。

GET请求

  1. 无参GET请求
import requests

response = requests.get('http://httpbin.org/get')
print(response.text)
  1. 有参GET请求
    参数包含在URL字符串中
import requests

response = requests.get("http://httpbin.org/get?name=zhaofan&age=23")
print(response.text)

参数以字典方式传参

import requests
data = {
    "name":"zhaofan",
    "age":22
}
response = requests.get("http://httpbionse =n.org/get",params=data)
print(response.url)
print(response.text)

这两种的结果是完全相同的,通过params参数传递一个字典内容,从而直接构造URL。
注意:第二种方式通过字典的方式的时候,如果字典中的参数为None则不会添加到URL上。

POST请求

通过在发送POST请求时添加一个data参数,这个data参数可以通过字典构造。

import requests

data = {
    "name":"zhaofan",
    "age":23
}
response = requests.post("http://httpbin.org/post",data=data)
print(response.text)

相关文章

网友评论

      本文标题:Requests库入门

      本文链接:https://www.haomeiwen.com/subject/iahsqqtx.html