Python如何保存/加载特定的cookies?

2024-09-29 00:11:48 发布

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

我有下面的Python代码,它应该使用.ROBLOSECURITY cookie登录到一个网站。它还包含一个except IOERROR:函数,这样如果.ROBLOSECURITY cookie没有登录,它将使用用户名/密码登录,并保存从中获得的cookie。在

import urllib2
import urllib
import cookielib

try:
    cookielib.LWPCookieJar().load("cookies.txt") #Trying to load the cookie file

except IOError: #In case the cookies.txt fails to log in. I don't know if IOError is the correct error specification for an expired cookie
    print "Loading stored cookies failed, manually logging in..."
    cj = cookielib.LWPCookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-agent', 'Mozilla/5.0')]
    urllib2.install_opener(opener)
    authentication_url = 'https://www.roblox.com/newlogin'
    payload = {
        'username' : 'UsernameHere',
        'password' : 'PasswordHere',
        '' : 'Log In',
        }
    data = urllib.urlencode(payload)
    req = urllib2.Request(authentication_url, data)
    resp = urllib2.urlopen(req)
    cj.save("cookies.txt") #Saving to the cookie file

tc = urllib2.urlopen("http://www.roblox.com/My/Money.aspx").read() #The hidden page
checksession = re.findall('My Transactions',tc) #Just checking for text that is only found on the hidden page
print checksession

我认为cookielib.LWPCookieJar().load("cookies.txt")不起作用,因为它还加载了除.ROBLOSECURITY之外的其他cookies(如果您只使用它,我知道它会登录)。如何只加载.ROBLOSECURITY cookie或只保存.ROBLOSECURITY(以便其他cookie不会干扰.ROBLOSECURITY登录)?在

另外,我不确定我的except IOError:是否能正常工作,因为我只知道如果我将cookielib.LWPCookieJar().load("cookies.txt")更改为cookielib.MozillaCookieJar().load("cookies.txt"),那么它就可以工作了

最后,我怎样才能将我的.ROBLOSECURITY的有效期改为2050-12-31 24:00:00Z


Tags: thetoimporttxtcookieloadopenerurllib2
1条回答
网友
1楼 · 发布于 2024-09-29 00:11:48

这是我最后的密码:

import urllib #Idk if this is necessary, but I'm not gonna bother checking. Only time I used it was for urllib.urlencode, which idk if urllib2 can do
import urllib2
import cookiejar
try:
    cj = cookielib.MozillaCookieJar("./cookies.txt")
    cj.load()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    tc = opener.open("http://www.roblox.com/My/Money.aspx").read()

#    print "Loading stored cookies succeeded, automatically logging in..."

#    checksession = re.findall('My Transactions',tc)

#    if len(checksession) > 0:
#        print "Login success!"

except IOError:
    print "Loading stored cookies failed, manually logging in..."
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-agent', 'Mozilla/5.0')]
    urllib2.install_opener(opener)
    authentication_url = 'https://www.roblox.com/newlogin'
    payload = {
        'username' : 'USERNAMEHERE',
        'password' : 'PASSWORDHERE',
        '' : 'Log In', #In hindsight Idk if this is necessary, but I don't feel like checking now
        }
    data = urllib.urlencode(payload)
    req = urllib2.Request(authentication_url, data)
    resp = urllib2.urlopen(req)
    cj.save("./cookies.txt") #./ to make sure its in the right directory

    tc = opener.open("http://www.roblox.com/My/Money.aspx").read() #Only accessible if logged in
#    checksession = re.findall('My Transactions',tc) #The rest is to check if log in was success by looking for specific phrase in the page

#    if len(checksession) > 0:
#        print "Login success!"

相关问题 更多 >