Python urllib2登录到minecraft.net [英] Python urllib2 login to minecraft.net

查看:113
本文介绍了Python urllib2登录到minecraft.net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了问题.我正在编写一个简单的脚本来登录minecraft.net,然后列出所有经典服务器.但是,当我运行脚本时,它只是将我重定向回minecraft.net/login.这是我到目前为止的内容:

I got a problem. I am writing a simple script to login to minecraft.net, and then list all classic servers. But when I run my script, it just redirects me back to minecraft.net/login. Here is what I have so far:

import urllib2
import urllib
import re

url = "https://www.minecraft.net/login"
page = urllib2.urlopen(url)
data = page.read()
page.close()

authToken = re.search('name="authenticityToken"[\s]+value="(.+)"', data).group(1)

data_dict = {
    "username": "USERNAME",
    "password": "PASSWORD",
    "remember": "true",
    #"redirect": "https://www.minecraft.net",
    "authenticityToken": authToken
}
print urllib.urlencode(data_dict)
req = urllib2.Request(url, data=urllib.urlencode(data_dict))
page = urllib2.urlopen(req)
data = page.read()
page.close()

我做错了什么?

推荐答案

您可以添加cookielib模块以登录到您的站点.

You can add cookielib module to login to your site.

#!/usr/bin/python
import urllib, urllib2, cookielib, re

login_url = "https://minecraft.net/login"
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
respon = opener.open(login_url).read()

authToken = re.search('name="authenticityToken"[\s]+value="(.+)"', respon).group(1)

data_dict = {
    "username": "USERNAME",
    "password": "PASSWORD",
    "remember": "true",
    "authenticityToken": authToken
}

login = opener.open(login_url, urllib.urlencode(data_dict))
logged_in = login.read()

if login_url in logged_in:
    print 'Login failed'
else:
    print 'Login OK'

这篇关于Python urllib2登录到minecraft.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆