前言:
在 爬虫 那一块,我们已经学会简单的使用python的requests模块,今天,我来简单记录一下python的requests模块中的post方法和get方法~(即两种网页请求方式)
GET
requests.get(url, data=None, **kwargs)
url:你要访问的网址
params:携带的参数
kwargs:添加的信息(比如UA头)
- 直接简单访问
import requests
url='https://baidu.com/' //定义url
response=requests.get(url) //发送get请求
print(response.url)
输出:https://baidu.com/
- 添加字段
import requests
url='https://baidu.com/'
payload ={'wd':'1221'}
response=requests.get(url,params=payload)
print(response.url)
输出:https://baidu.com/?wd=1221
向网页传了参数,这就是GET传参
POST
发送表单:
post(url, data=None, json=None, **kwargs)
url:你要访问的网址
data:表单
kwargs:添加的信息(比如UA头)
- 提交表单
import requests
url='https://马赛克.com/登录界面'
data = {
'log':'123', //举例的登录用户名
'pwd':'123'
}
#添加UA头
header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"}
response=requests.post(url,data=data,headers=header)
print(response.text)
我们可以看到返回文本是登陆成功的界面
即我们提交表单成功啦!
发送json:
我这里写了个nodejs的服务端来检测我们的post请求,开启于1234端口,这个服务端会将客户端发送来的POST请求的内容作为响应返回给客户端,代码如下:
var http=require("http");
var fs=require("fs")
var url=require("url")
var onRequest=function(request,response){
var pathname=url.parse(request.url).path;
var data="";
request.on("error",function(err){
console.log(err);
}).on("data",function(chunk){
data+=chunk;
}).on("end",function(){
//输出json数据
response.writeHead(200,{'Content-Type':'application/json'});
//把对象序列化
response.end(JSON.stringify(data));
})
}
var server=http.createServer(onRequest);
server.listen(1234);
console.log("node服务器在本机1234端口上");
好,我们回到 Pycharm ,
注意:python中并没有json类型这一说法,通过json模块的json.dumps(<dict>) 转换的字典对象,可以得到的是一个字符串对象,也就是说,在python中json格式的数据实际上就是一个字符串。
写如下代码:
import requests
import json
url="http://127.0.0.1:1234/"
#表单字典
data={
"log":1,
"paw":2
}
js = json.dumps(data)
headers = {'Content-Type': 'application/json'}
response=requests.post(url,data=data,headers=headers)
print(response.text)
开启nodejs后运行我们的python程序,输出得到的响应内容:
"log=1&paw=2"
希望对你有帮助
欢迎访问我的博客:is-hash.com
商业转载 请联系作者获得授权,非商业转载 请标明出处