想用python发送一个post请求查询xxx网站的orders页面,需要先登录才行.
可是弄了好久都没有办法登录成功,想查看一下opener的内容是不是对的,有什么方法吗?
试过opener[data],opener(data)
之类的都不行..
login_page = "http://xxx/admin/signin"
data = urllib.urlencode(
{
"admin_session[name]":12345,
"admin_session[password]":112233
}
)
cj = cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0')]
opener.open(login_page,data)
op = opener.open('http://xxx/admin/orders')
#print opener(data)
我参考这个回答改了一下,改成了下面的代码,依然无法登陆成功:
#!/usr/bin/python
# -*- coding=utf-8 -*-
import urllib, urllib2, cookielib, sys
reload(sys)
sys.setdefaultencoding('utf-8')
__cookie = cookielib.CookieJar()
__req = urllib2.build_opener(urllib2.HTTPCookieProcessor(__cookie))
__req.addheaders = [
('Accept', 'application/javascript, */*;q=0.8'),
('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)')
]
urllib2.install_opener(__req)
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
}
postData = {
'admin_session[phone]' : '12345', ###你的用户名
'admin_session[password]' : '123', ###你的密码
'admin_session[remember_me]':'0',
}
request = urllib2.Request('http://xxx/admin/signin', urllib.urlencode(postData), headers)
response = urllib2.urlopen(request).read()
#输出登陆结果
print response
#请求登陆后可以访问的页面
request = urllib2.Request('http://xxx/admin/orders')
response = urllib2.urlopen(request).read()
#输出结果
#print response