前面簡(jiǎn)單提到了 Python 模擬登錄的程序,但是沒(méi)寫清楚,這里再補(bǔ)上一個(gè)帶注釋的 Python 模擬登錄的示例程序。簡(jiǎn)單說(shuō)一下流程:先用cookielib獲取cookie,再用獲取到的cookie,進(jìn)入需要登錄的網(wǎng)站。
# -*- coding: utf-8 -*-
# !/usr/bin/python
import urllib2
import urllib
import cookielib
import re
auth_url = 'http://www.nowamagic.net/'
home_url = 'http://www.nowamagic.net/';
# 登陸用戶名和密碼
data={
"username":"nowamagic",
"password":"pass"
}
# urllib進(jìn)行編碼
post_data=urllib.urlencode(data)
# 發(fā)送頭信息
headers ={
"Host":"www.nowamagic.net",
"Referer": "http://www.nowamagic.net"
}
# 初始化一個(gè)CookieJar來(lái)處理Cookie
cookieJar=cookielib.CookieJar()
# 實(shí)例化一個(gè)全局opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
# 獲取cookie
req=urllib2.Request(auth_url,post_data,headers)
result = opener.open(req)
# 訪問(wèn)主頁(yè) 自動(dòng)帶著cookie信息
result = opener.open(home_url)
# 顯示結(jié)果
print result.read()
再附帶幾個(gè)示例程序:
1. 使用已有的cookie訪問(wèn)網(wǎng)站
import cookielib, urllib2
ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default', 'cookies.txt'))
req = urllib2.Request(url, postdata, header)
req.add_header('User-Agent', \
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )
f = opener.open(req)
htm = f.read()
f.close()
2. 訪問(wèn)網(wǎng)站獲得cookie,并把獲得的cookie保存在cookie文件中
import cookielib, urllib2
req = urllib2.Request(url, postdata, header)
req.add_header('User-Agent', \
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
ckjar = cookielib.MozillaCookieJar(filename)
ckproc = urllib2.HTTPCookieProcessor(ckjar)
opener = urllib2.build_opener(ckproc)
f = opener.open(req)
htm = f.read()
f.close()
ckjar.save(ignore_discard=True, ignore_expires=True)
3. 使用指定的參數(shù)生成cookie,并用這個(gè)cookie訪問(wèn)網(wǎng)站
import cookielib, urllib2
cookiejar = cookielib.CookieJar()
urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
values = {'redirect':", 'email':'abc@abc.com',
'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'}
data = urllib.urlencode(values)
request = urllib2.Request(url, data)
url = urlOpener.open(request)
print url.info()
page = url.read()
request = urllib2.Request(url)
url = urlOpener.open(request)
page = url.read()
print page
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

