python3登录网站smzdm.com网站

2024-04-20 05:04:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习python3来登录一个网站

在Chrome中,我发现登录表单是:

<form id="login_form" action="http://www.smzdm.com/user/login" method="post">
    <div class="item-tip">用户名/邮箱</div>
    <input id="user_login" class="form-input" type="text" name="user_login" value="" tabindex="1" autocomplete="off">   
    <div class="item-tip">密码</div>
    <input id="user_pass" class="form-input" type="password" name="user_pass" value="" tabindex="2">
    <input type="submit" id="btn_login" class="btn_login" value="登&nbsp;&nbsp;录" tabindex="4"> 
</form>

但当我登录后发现他们使用jQueryGET方法发送数据:

^{pr2}$

请求url将是:

http://www.smzdm.com/user/login/jsonp_check?callback=jQuery111006958817734848708_1440206381009&user_login=MYNAME&user_pass=MYPASSWORD&rememberme=0&is_third=&is_pop=1&captcha=&_=1440206381011

在这些之后,我制作了python代码:

url = 'http://www.smzdm.com/user/login/jsonp_check'
request_data = {
    'user_login': 'MYUSERNAME',
    'user_pass': 'MYPASSWORD'
}
headers = {
    'Host': 'www.smzdm.com',
    'Referer': 'http://www.smzdm.com/',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)'
}
cookie = http.cookiejar.MozillaCookieJar(cookie_file)
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
urllib.request.install_opener(opener)
data = urllib.parse.urlencode(request_data).encode('utf-8')
request = urllib.request.Request(url,  headers=headers)
respone = urllib.request.urlopen(request, data=data)
# Another request gets the user's info
req = urllib.request.Request('http://www.smzdm.com/user', headers=headers)
r = urllib.request.urlopen(req)
result = r.read().decode('utf-8')
print(result)

但是在运行这些代码之后,我似乎没有成功登录,这是我犯了什么错误吗?在

谢谢!在


Tags: divformcomidhttpinputdatarequest
1条回答
网友
1楼 · 发布于 2024-04-20 05:04:17

您缺少大量查询字符串。。。在

request_data = {
'callback'  : 'jQuery111006958817734848708_1440206381009',
'user_login' : 'MYPASSWORD',
'user_pass' : 'MYUSERNAME',
'rememberme' :'0',
'is_third'  : '0',
'is_pop'    : '0',
'captcha' : '',
'_' : '1440206381011'}

试试看,它应该和你发布的网址完全匹配。在

相关问题 更多 >