Python中Requests库的基本使用
python爬虫从入门到放弃
什么是Requests库
- Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库
- 其实urllib还是非常不方便的,而Requests它会比urllib更加方便,可以节约我们大量的工作。(用了requests之后,你基本都不愿意用urllib了)一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。
- 默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装
Requests功能
1.总体功能
1 |
|
response使用起来确实非常方便,这里有个问题需要注意一下:
- 很多情况下的网站如果直接response.text会出现乱码的问题,所以这个使用response.content,这样返回的数据格式其实是二进制格式,然后通过decode()转换为utf-8,这样就解决了通过response.text直接返回显示乱码的问题。
- 请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当你访问 response.text 之时,Requests 会使用其推测的文本编码。你可以找出 Requests 使用了什么编码,并且能够使用response.encoding 属性来改变它.如:不管是通过**response.content.decode(“utf-8”)的方式还是通过response.encoding=”utf-8”**的方式都可以避免乱码的问题发生。
1
2
3response =requests.get("http://www.baidu.com")
response.encoding="utf-8"
print(response.text)
2.各种请求方式
- 基本GET请求
1
2
3import requests
response = requests.get('https://doubler.cn/get')
print(response.text) - 含参数的GET请求
1
2
3import requests
response = requests.get("https://doubler.cn/get?name=zhujialei&age=20")
print(response.text) - 解析json
1
2
3
4
5
6
7import requests
import json
response = requests.get("http://httpbin.org/get")
print(type(response.text))
print(response.json())
print(json.loads(response.text))
print(type(response.json())) - 添加headers
1
2
3
4
5
6import requests
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}
response =requests.get("https://www.zhihu.com",headers=headers)
print(response.text) - 基本POST请求
通过在发送post请求时添加一个data参数,这个data参数可以通过字典构造成,这样对于发送post请求就非常方便:1
2
3
4
5
6
7import requests
data = {
"name":"zhujialei",
"age":20
}
response = requests.post("https://doubler.cn/post",data=data)
print(response.text)
Python中Requests库的基本使用
https://chujian521.github.io/blog/2018/08/03/Python中Requests库的基本使用/