Python3发送post请求,自动记住cookie
转载自:http://www.cnblogs.com/meitian/p/4607737.html
在做登录的post请求时,需要记住cookie,否则不能访问登录后的页面。
下面是登录的代码:
#coding:utf-8
import urllib
import http.cookiejar
url = "http://c.highpin.cn/Users/CLogin"
postdata =urllib.parse.urlencode({
"Logon_Password":"sunmin",
"Logon_PostCode":"fghc",
"Logon_RememberMe":"false",
"Logon_UserEmail":"sun121@qq.com"
}).encode('utf-8')
header = {
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding":"utf-8",
"Accept-Language":"zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3",
"Connection":"keep-alive",
"Host":"c.highpin.cn",
"Referer":"http://c.highpin.cn/",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0"
}
req = urllib.request.Request(url,postdata,header)
##print(urllib.request.urlopen(req).read().decode('utf-8'))
#自动记住cookie
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
r = opener.open(req)
print(r.read().decode('utf-8'))
以前用的是python2.7,但是python3开始很多包的位置和以前不一样了,就对这里用到的说明一下:
urllib2合并到了urllib下,urlopen使用时包的位置为urllib.request.urlopen,urlencode使用包位置为urllib.parse.urlencode
cookielib变更为了http.cookiejar
说明:带cookie的打印出来必须用opener.open(req).read().decode('utf-8')来发送的请求才会带上cookie,如果用urllib.request.urlopen()是不带cookie的
import urllib
url = "http://h.highpin.cn/ManageJob/PubJobCompany?Length=9"
postdata=urllib.parse.urlencode({
"JobName":"测试工程师",
"YearlySalaryMin":"11",
"YearlySalaryMax":"12",
"X-Requested-With":"XMLHttpRequest",
"WorkExperienceMin":"-1",
"WorkExperienceMax":"-1",
"TabId":"0",
"SubordinateCount":"0",
"SaveType":"1",
"ReportObject":"测试人",
"RecruitCount":"1",
"QualifiCation":"信息描述",
"ProfessionalName":"",
"nowCurrentPageIndex":"0",
"Memo":"限500字",
"MasteryDegree":"1",
"MajorID":"-1",
"LanguageType":"-1",
"JobTypeID":"1050000,4000000,160000",
"JobTagCount":"8",
"JobStatus":"1",
"JobDescription":"职位描述",
"JobAllTagStr":"五险一金",
"IsViewHighEndUser":"false",
"IsFull":"true",
"FullTime":"false",
"DepName":"测试",
"Degree":"-1",
"CompanyID":"2234",
"CloseDate":"2016-01-12",
"AreaID":"530",
"AgeMin":"-1",
"AgeMax":"-1"
}).encode('utf-8')
header={
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding":"utf-8",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
"Host":"h.highpin.cn",
"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
"Referer":"http://h.highpin.cn/ManageJob/PubNewJob",
"Cookie":"XXXXX",
"Connection":"keep-alive"
}
req = urllib.request.Request(url,postdata,header)
r=urllib.request.urlopen(req)
print(r.read().decode('utf-8'))
Python3和Python2的变更,可以参考文章:http://blog.csdn.net/samxx8/article/details/21535901
Python3发送post请求,自动记住cookie的更多相关文章
- Python3发送webservice请求
Python3使用suds-jurko库来发送webservice接口请求 导入请求webservice接口需要用到的包 pip install suds-jurko 第一步:导入所需要的包 from ...
- postman发送HTTP请求自动生成MD5签名
POSTMAN是常用的接口测试工具 如何进行MD5签名呢? 代码如下: /** * 通过request.data获取body的内容,这个是postman内置变量 * 常用内置参数如下: * reque ...
- Fiddler5 发送HTTP请求
1.Fiddler Composer发送HTTP请求 Composer的编辑模式主要有2种:Parsed模式和Raw模式. 实例1:Composer发送get请求 实例2:Composer发送post ...
- 转 Fiddler5 发送HTTP请求
Fiddler5 发送HTTP请求 文章转自:https://www.cnblogs.com/zhengna/p/10879573.html 1.Fiddler Composer发送HTTP请求 C ...
- iOS-WKWebView携带cookie发送http请求,cookie失效
发送请求代码: NSString *testUrl = @"http://10.22.122.7:8081/test2_action/view_index"; NSURL *url ...
- fetch发送Form Data请求并携带cookie
今天我们来说说如何fetch发送Form Data请求并携带cookie,直接进入正题好吧,别问我今天为啥不在开始吹两句了,累到一句牛逼不想吹...... 步骤1: 设置头部,"Conten ...
- 只要访问的地址匹配cookie的地址时候 发送request请求时候 会携带上该cookie
只要访问的地址匹配cookie的地址时候 发送request请求时候 会携带上该cookie
- axios添加了header信息后发送的get请求自动编程option请求了
axios添加了header信息后发送的get请求自动编程option请求了 webpack 代理转发 Provisional headers are shown 在Vue中如何使用axios跨域访问 ...
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆 怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数 ...
随机推荐
- typedef NS_OPTIONS 位移的枚举
typedef NS_OPTIONS里面的枚举可以并存使用 用 | 来并存
- Codeforce Round #221 Div2
每次的CF都是一把辛酸泪! 什么时候能打破这局面,昨天做着睡着了! 有时候有的题目也就差一线! 哎,! A:杠杆原理! B:算最后负的和! B:没弄出来当时就脑短路... C:事后写了个n*log(n ...
- Java基础(63):正则表达式的运用
Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...
- linux centos5.7(32bit) oracle 10g oracle11g
cenOS5.5安装oracle10g(傻瓜篇) http://www.cnblogs.com/fnng/archive/2012/06/19/2554159.html (转) 在cenOS5.5上 ...
- Spark on Yarn
Spark on Yarn 1. Spark on Yarn模式优点 与其他计算框架共享集群资源(eg.Spark框架与MapReduce框架同时运行,如果不用Yarn进行资源分配,MapReduce ...
- 常见http状态
200(成功):服务器已成功处理了请求.通常,这表示服务器提供了请求的网页.如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件. 304(未修改):自 ...
- oracle热备份
1:热备份: SHUTDOWN IMMEDIATE; STARTUP MOUNT; alter database archivelog; --ALTER SYSTEM SET LOG_ARCHIVE_ ...
- InstallShield 下载安装
好久没有写项目了,昨晚加班给一位淘客写了一个Winform小程序, 今早发布,然后发现微软将软件发布的这块内容交给了一个第三方插件 InstallShield, 不知道微软是何用意,我们还是看看如何安 ...
- Mongodb 笔记06 副本集的组成、从应用程序连接副本集、管理
副本集的组成 1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作.oplog是主节点的local数据库中的一个固定集合.备份节点通过查询整个集合就可 ...
- Linux Centos 上一些常用的命令
1.查看端口被哪个进程占用 netstat -lnp | grep <端口号> 2.查看某个进程号详细信息 ps <进程号> 3.检查指定服务是否开启(例如 telnet) c ...