requests库:
安装和文档地址:
pip3 install requests
中文文档:https://2.python-requests.org//zh_CN/latest/index.html
GitHub地址:https://pypi.org/project/requests/
基本使用:
发送GET请求:
发送get请求,直接调用‘requests.get’ 就可以了,想要发送什么类型的请求, 就调用什么方法。
import requests
# 传参数
params = {
'wd': '中国'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
}
response = requests.get("https://www.baidu.com/s", params=params, headers=headers)
with open('baidu.html', 'w', encoding='utf-8') as fp:
fp.write(response.content.decode('utf-8'))
#response的一些属性
print(response.text) #自己解码,不准确 查看响应内容和content一样
# print(type(response.text)) <class 'str'>
# print(response.text)
print(type(response)) #bytes类型
print(response.content.decode('utf-8'))
#查看完整的url地址
print(response.url) # https://www.baidu.com/
# 查看响应头字符串的编码
print(response.encoding) #ISO-8859-1
# 查看响应的
print(response.status_code) #200
# 返回为字典的形式
print(response.json())
response.text 和 response.content的区别:
1. response.content : 这个是直接从网络上面抓取的数据。没有进行任何解码。所以是一个bytes类型, 其实在硬盘上和网路上传输的字符串都是bytes类型。
2. response.text : 这个是str的数据类型, 是requests库将response.content 进行解码的字符串,解码需要指定一个编码方式, requests 会根据自己的猜测来判断编码的方式。所以有的时候可能会猜测错误,就会导致解码产生乱码,这时候应用 ‘response.content.decode('utf-8')’ 进行手动解码。
发送POST请求:
1.就是把上面的get改成post就行了。
2.已拉勾网为例:
from urllib import request import requests data = { 'first': 'true', 'pn': 1, 'kd': 'python' } headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36", 'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=' } response = requests.post('https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=flase', data=data, headers=headers) print(response.text) print(response.url)