浅谈Python中requests模块的post和get

前言:

在 爬虫 那一块,我们已经学会简单的使用python的requests模块,今天,我们再来学习一下python的requests模块中的post方法和requests方法~(即两种网页请求方式)

 

 

 

GET♦

requests.get(url, data=None, **kwargs)
url:你要访问的网址
params:携带的参数
kwargs:添加的信息(比如UA头)
  • 直接简单访问
import requests
url='https://is-hash.com/'    //定义url
response=requests.get(url)     //发送get请求
print(response.url)

输出:https://is-hash.com/

  • 添加字段
import requests
url='https://is-hash.com/'
payload ={'wd':'1221'}
response=requests.get(url,params=payload)
print(response.url)

输出:https://is-hash.com/?wd=1221

向网页传了参数

  • 添加头
import requests
url='https://is-hash.com/'
payload ={'wd':'1221'}
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.get(url,params=payload,headers=header)
print(response.url)

输出:https://is-hash.com/?wd=1221

添加了头信息只是改变了访问来源之类的,不影响输出


POST♥

发送表单:

post(url, data=None, json=None, **kwargs)
url:你要访问的网址
data:表单
kwargs:添加的信息(比如UA头)
  • 提交表单
import requests
url='https://is-hash.com/登录界面'

data = {
    'log':'123',    //举例的登录用户名
    'pwd':'123'
}
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"

商业转载 请联系作者获得授权,非商业转载 请标明出处

发表评论