[python 爬蟲學習]利用cookie模擬網站登入

NO IMAGE

利用cookie模擬登陸西安交通大學的門戶系統並將cookie資訊儲存到文字檔案中

#coding:utf-8
import cookielib
import urllib
import urllib2
filename = 'cookie.txt'
#宣告一個MozillaCookieJar物件例項來儲存cookie,之後寫入檔案
cookie = cookielib.MozillaCookieJar(filename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
postdata = urllib.urlencode({
'username':'xxxxxxxxx',
'password':'xxxxxxxxx'       #此處為使用者名稱和密碼
})
#登入師生服務端的URL
loginUrl='https://cas.xjtu.edu.cn/login?service=http%3A%2F%2Fssfw.xjtu.edu.cn%2Findex.portal'
#模擬登入,並把cookie儲存到變數
result = opener.open(loginUrl,postdata)
#保持cookie到cookie.txt中
cookie.save(ignore_discard=True,ignore_expires=True)
#利用cookie請求訪問另一個網址,此網址是綜合資訊門戶
myxjtuUrl='https://cas.xjtu.edu.cn/login?service=http://my.xjtu.edu.cn/Login'
#訪問綜合資訊門戶
result = opener.open(myxjtuUrl)
print result.read()

實現原理:建立一個帶有cookie的opener,在訪問登入的URL時,將登入後的cookie儲存下來,然後利用這個cookie來訪問其他網址。