1
我想登錄到Moodle網站,但它返回「你還沒有登錄」頁面,這意味着認證不成功。我究竟做錯了什麼?我忘了設置參數嗎?請不要推薦機械化。我想了解它是如何在沒有圖書館的情況下運作的。我的代碼:Python:用urllib2登錄Moodle
import cookielib, urllib, urllib2, getpass
# not the actual site, but still a Moodle example
theurl = 'https://moodle.pucrs.br/login/index.php'
username= raw_input("\tusername: ")
password= getpass.getpass("\tpassword: ")
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl, username, password)
cj = cookielib.CookieJar()
opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPBasicAuthHandler(passman),
urllib2.HTTPHandler(debuglevel=0),
urllib2.HTTPSHandler(debuglevel=0),
urllib2.HTTPCookieProcessor(cj),
)
urllib2.install_opener(opener)
# set headers
opener.addheaders = [
('User-agent', ('Mozilla/4.0 (compatible; MSIE 6.0; '
'Windows NT 5.2; .NET CLR 1.1.4322)'))
]
try:
#req = opener.open(theurl, data)
req = opener.open(theurl)
except IOError, e:
print "It looks like the username or password is wrong."
# == test ==
# visit "my courses":
req = opener.open("https://moodle.pucrs.br/my/")
content = ''.join(req.readlines())
print(content)
它的工作!謝謝。我注意到我添加的一些東西,比如HTTPSHandler(),是不必要的。我將不得不查看CookieJar()和LWPCookieJar()之間的區別。 – user1755025
是的,我只是使用這個相同的登錄大多數網站,所以我保留了一些不必要的東西。很高興我能幫上忙! :) – Serial