上面我们介绍了
urllib
模块的使用,有一个比urllib
更加“人性化”的模块,那就是requests
库,使用它可以更加便捷的发起各种请求。
1、安装requests
pip install requests
2、python发送get请求
(1)发送简单请求
import requests
jier = requests.get('http://www.baidu.com')
print(jier.text)
输出为一个网页的html
代码;
(2)添加Header
import requests
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
jier = requests.get('http://www.baidu.com', headers=Header)
print(jier.text)
输出为一个网页的html
代码;
(3)添加请求参数
import requests
jier = {'wd': '运维家的博客'}
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.text)
输出为一个网页的html
代码;
(4)查看响应内容
text
:这个是str
的数据类型,是requests
库将response.content
进行解码的字符串,当有时候text
放回的格式乱码的时候,可以采用下面的content
的方式指定编码格式;
content
:这个是直接从网络上面抓取的数据,没有经过任何解码,所以是一个bytes
类型;
import requests
jier = {'wd': '运维家的博客'}
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
# 使用text
print(suner.text)
# 使用content
print(suner.content.decode('utf-8'))
输出为一个网页的html
代码;
(5)查看完整URL
import requests
jier = {'wd': '运维家的博客'}
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.url)
输出内容如下:
http://www.baidu.com/s?wd=%E8%BF%90%E7%BB%B4%E5%AE%B6%E7%9A%84%E5%8D%9A%E5%AE%A2
(6)查看响应头字符编码
import requests
jier = {'wd': '运维家的博客'}
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.encoding)
输出内容如下:
utf-8
(7)查看响应码
import requests
jier = {'wd': '运维家的博客'}
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
suner = requests.get('http://www.baidu.com/s?', params=jier, headers=Header)
print(suner.status_code)
输出内容如下:
200
3、python发送post请求
(1)发送简单请求
import requests
jier = requests.post('http://www.baidu.com')
print(jier.text)
输出结果为一个网页的html
代码;
(2)发送带参数的请求
这里我们再次使用
httpbin
网站,这次就不介绍如何查看方法了,之前说过好几次了,直接用。
import requests
Test_Url = 'http://httpbin.org/post'
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
Data = {'name': 'yunweijia', 'type': 'gongzhonghao'}
jier = requests.post(Test_Url, headers=Header, data=Data)
print(jier.text)
输出结果如下:
{
"args": {},
"data": "",
"files": {},
"form": {
"name": "yunweijia",
"type": "gongzhonghao"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "32",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-62822e2b-5a2c632c1d88fe0f597edd6f"
},
"json": null,
"origin": "223.71.97.14",
"url": "http://httpbin.org/post"
}
其他的参数和GET
一样,直接使用即可,这里就不再一一举例了。
4、Requests使用代理
(1)未使用代理之前
import requests
Test_Url = 'http://httpbin.org/post'
Header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
jier = requests.post(Test_Url, headers=Header)
print(jier.text)
输出信息如下:
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "0",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-62823bc1-6bcdae190bb802f8616c3032"
},
"json": null,
"origin": "223.71.97.14",
"url": "http://httpbin.org/post"
}
(2)使用代理之后
剩余内容请转至VX公众号 “运维家” ,回复 “170” 查看。
------ “运维家” ,回复 “170” ------
------ “运维家” ,回复 “170” ------
------ “运维家” ,回复 “170” ------
linux卸载硬盘,win7共享linux,linuxgdal安装,Linux7忘记密码,linux怎么进入文件的子目录,高通开源代码linux,linuxusr大小,重启服务器的linux命令,linux的jdk怎么安装啊;
linuxtar文件打不开,linux常用状态检测,linux成功开机界面,linux七种文件,linux命令,Linux+删除数据的命令,linux自动监听重启服务器,如何快速担任linux运维,Linux返回到波浪线,linux大数据架构搭建。