Requests库的用法
- 安装
- pip install requests
- 基本请求
response=requests.get(参数)
response=requests.post(参数)
response=requests.put(参数)
response=requests.delete(参数)
response=requests.head(参数)
response=requests.options(参数)
2.1 get请求
- 参数是字典,也可以传递json类型的参数
import requests
url="https://www.baidu.com/s"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
}
params={
"wd":"西安邮电大学"
}
response=requests.get(url,headers=headers,params=params)
print(response.text)
2.2 post请求
- 参数是字典,也可以传递json类型的参数
import requests
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
}
datas = {
"user": "17703181473",
"password": "123456"
}
url = "https://www.sxt.cn/login/login"
response=requests.post(url,headers=headers,data=datas)
print(response.text)
2.3 代理访问
- 采集时为避免被封IP,经常会使用代理,requests也有相应的proxies属性
#部分代码如下
url="http://httpbin.org/get"
proxies={
"http":"118.190.95.43:9001"
}
response=requests.get(url,headers=headers,proxies=proxies)
#如果代理需要账户和密码,就是下面的代码
proxies={ "http":"398707160:[email protected]:16818"#user:passwd@ip:port
}
2.4 session自动保存cookie
- session的意思是保持一个会话,比如登录后继续操作(记录身份信息),而requests是单词请求的请求,身份信息不会被记录
session=requests.Session()#创建一个session对象
datas = {
"user": "17703181473",
"password": "123456"
}
login_url="https://www.sxt.cn/login/login"
response=session.post(login_url,headers=headers,data=datas)
info_url="https://www.sxt.cn/index/user.html"
respon=session.get(info_url,headers=headers)
2.5 ssl验证
url="https://www.12306.cn/mormhweb/"
requests.packages.urllib3.disable_warnings()#关闭安全请求警告
response=requests.get(url,verify=False,headers=headers)
response.encoding="utf-8"
- 获取响应信息
- response.json() 获取响应内容(以json字符串)
- response.text() 获取响应内容(以字符串)
- response.content获取响应内容(以字节的方式)
- response.headers 获取响应头内容
- response.url 获取访问地址
- response.encoding 获取网页编码
- response.request.headers 请求头内容