python - 有什么办法可以查看urllib2.OpenerDirector实例的内容是否正确?
PHP中文网
PHP中文网 2017-04-17 16:33:09
[Python讨论组]

想用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
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号