验证码问题,这个比较简单,保存验证码图片到本地,人工肉眼识别验证码并输入就行.
POST和GET,这是HTTP协议中向网站发送请求的两种方法,
每个网站用的方法不一样,甚至一个网站的每个网页用的方法都不一样,
GET方法最简单,因为它把想要的数据,参数都放到网址里,所以用一条网址直接就能获得网站的数据.
而POST方法抓起来就有点难度,因为它想提交的数据参数都不放在网址里,所以比较隐蔽,需要打开浏览器的F12调试模式.在后台查POST都提交了哪些参数数据请求.
找到要查找的网页,看它用的是POST还是GET.
如果是POST方法,还要看它提交的数据是什么类型,就目前我看到的,有form data和json两种,form data翻译过来是表单数据
表单数据也比较简单,把表单数据全部复制下来,然后使用POST函数时,当data参数用就行.
python">urlPost = '访问的网址'
dataPost = {
'ScriptManager1' : "UpdatePanel1|BtnOk",
'__EVENTTARGET' : '',
'__EVENTARGUMENT': '',
'hdkId': '',
'hdKVal': '',
'UserId': '',
'TxtUser': "你的用户名",
'TxtPass': "你的密码",
'TxtValidity': codeInput,
'__VIEWSTATE': "/wEPDwUKMTcyMzM5MjA5NWRka/IEi1yp6Io1kHJcr0iIWwfRleuxsCWDQe+wkzhsi7U=",
'__VIEWSTATEGENERATOR': "CA0B0334",
'__EVENTVALIDATION': '/wEdAAi0RfoZ/5gOsqPG+0LQ0gj8WFAEkVvHsmOp+7cfEraaYgSyq8SFAD7uLH+MLLT9ZgDw5DOQjrEKsM9grc5TE0xFJpTN5EWcMzY0vw486EGsUiRUZ9UiTbgc03l5a/zMwdk4iIeEx9Ef2ezD4UG0M+B7OLzwrTSwNq50ccOn3Zx3HhSER2L//xnSM/yrz7p0dGwg23sYy7sBTsovr4ZDP2dX',
'__ASYNCPOST': 'true',
'BtnOk':'',
}
# 访问
responsePost = session.post(url=urlPost,data=dataPost,headers=headers)
还有一种POST提交的数据是json,下边显示的就是请求载荷
content-type: application/json;charset=UTF-8
通过上边的content-type查出来它提交的数据是json的,
python">cxdata={'txtNumber': '','txtName':'','birthdayStart':'','birthdayEnd':'','txtIdNumber': '','txtTel':'13788888888','txtPleat':'1','txtPrefecture':'1303','txtCity':'10','txtTown': '168','txtHospital':'0','txtVillage':'0','vaccType':'1','isHos':'0','MotherName':'','FatherName':''}
jg=session.post(url=url,json=cxdata,headers=headers)
print(jg.text)
就是如果提交的是表单数据,就用data当post的参数,如果提交的是json,请求载荷的数据,那就用json当post的参数
HTTP content-type
Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。
Content-Type 标头告诉客户端实际返回的内容的内容类型。
语法格式:
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
常见的媒体格式类型如下:
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
以application开头的媒体格式类型:
application/xhtml+xml :XHTML格式
application/xml: XML数据格式
application/atom+xml :Atom XML聚合格式
application/json: JSON数据格式
application/pdf:pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式