用Python发送post请求简单实例

首先你要了解HTTP请求
首先你要了解HTTP请求的一些知识

http请求是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标识符及使用的协议。HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。GET 请求指定的页面信息,并返回实体主体。 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。

get请求与response类的使用方法参考https://blog.csdn.net/scx_qsnl/article/details/89787511

post不像get请求直接将数据放在请求上,而是通过表单,xml或者json等来存取数据的,Python要来模拟这个过程,首先要找到URL和数据,而数据在Python中用字典的形式表示,话不多说,看例子

我们这里以某网站的登录为实例,打开网站,输入用户名密码和验证码,点击登录,用fiddler抓取数据(fiddler下载地址和使用方法自行百度)

用Python发送post请求简单实例_第1张图片
这里我们可以看到,这是一个post请求,请求的url是http://211.83.32.12/default2.aspx,而请求的数据,就是最下面那一行,直接看Python代码

python代码:

import requests##引入包
url="http://211.83.32.12/default2.aspx"##抓包抓取的地址
data={
    '__VIEWSTATE':'dDwxNTMxMDk5Mzc0Ozs%2BMM2TyUnM1mFmHhddLHEfoT6ZqRM%3D',
    'txtUserName':'123',
    'Textbox1':'',
    'TextBox2':'456',
    'txtSecretCode':'789',
    'RadioButtonList1':'%D1%A7%C9%FA',
    'Button1':'',
    'lbLanguage':'',
    'hidPdrs':'',
    'hidsc':''
}##向服务器发送的数据,用fiddler抓包获取的数据
req=requests.post(url,data)##发出请求,接受返回的内容
print(req.text)##以文本打印返回的内容





用Python发送post请求简单实例_第2张图片

可以看到返回的数据,也是一个html,因为我们这里用户名、密码和验证码都是随便输入的,服务器返回了个验证码错误,但由于编码的问题,使得中文的显示出现了问题,至于解决方法可以使用str类的编码方法,也可以使用response类的encoding方法

你可能感兴趣的:(用Python发送post请求简单实例)