# 建立cookiejar的例項
cookie = cookiejar.cookiejar()
# 常見cookie的管理器
# 建立http請求的管理器
# 生成https管理器
# 建立請求管理器
# 登入函式,cookie在opener裡
def login():
try:
# 負責首次登入,輸入使用者名稱和密碼,用來獲取cookie
url = 'url'
username = 'username'
password = 'password'
param =
# 把資料進行編碼
data = parse.urlencode(param)
# 建立乙個請求物件
req = request.request(url,data=data.encode('utf-8'))
# 使用opener發起請求
rsp = opener.open(req)
return json.loads(rsp.read())['success']
except:
return false
#獲取虛擬機器資訊 post方法
def getfatherhost():
url = 'url'
param =
# 如果已經執行login函式,則opener自動已經包含cookie
data = parse.urlencode(param)
req = request.request(url,data=data.encode('utf-8'))
rsp = opener.open(req)
return json.loads(rsp.read())['data']['rows']
#獲取宿主機監控資訊 get方法
def gethoststate(hostid,vendorid):
url = 'url'
param =
}
data = parse.urlencode(param)
req = request.request(url = '%s%s%s'%(url,'?',data))
#print('%s%s%s'%(url,'?',data))
rsp = opener.open(req)
return json.loads(rsp.read())['data']
##獲取虛擬機器資訊 post方法
def getchildhost(hostid,vendorid):
param =,"sign":"eq"}]
}
url = 'url'
data = parse.urlencode(param)
req = request.request(url,data=data.encode('utf-8'))
rsp = opener.open(req)
return json.loads(rsp.read())['data']['rows']
##獲取上次資訊時間和若無檔案則建立
def getlasttime(filepath):
if not os.path.exists(filepath):
f=open(filepath,'w')
f.write(filepath+'已建立 \n')
f.close()
return ''
with open(filepath,'r') as f:
lines = f.readlines()
if len(lines)>0:
last_line = lines[-1]
return last_line[0:19]
return ''
if __name__ == '__main__':
##防止檔案過大,每天乙個新檔案
filepath1 = '宿主機資訊'+time.strftime("%y-%m-%d",time.localtime())+'.txt'
##防止檔案過大,每月乙個新檔案
filepath2 = '主機對應虛擬機器資訊'+time.strftime("%y-%m",time.localtime())+'.txt'
##當登入成功時
if (login()):
print('登入成功')
f1 = open(filepath1,'a')
f2 = open(filepath2,'a')
##宿主機列表
fatherhosts = getfatherhost()
#timestr2=getlasttime(filepath2)
##獲取上次時間戳
timestr1=getlasttime(filepath1)
timelast=''
for host in fatherhosts:
##虛擬機器列表資訊
childshosts = getchildhost(host['id'],host['vendorid'])
for childshost in childshosts:
f2.write('主機名稱:'+host['name']+' 主機ip:'+host['manageip']+' 虛機名稱:'+childshost['name']+' 虛機ip:'+childshost['managerip']+' 虛機狀態:'+childshost['status']+' 資料儲存區:'+childshost['datastores']+' 快照數量:'+str(childshost['snapshotcount'])+' 磁碟/gb:'+str(childshost['disk'])+'\n')
##宿主機資訊
hoststate = gethoststate(host['name'],host['vendorid'])
sorts = ['system','mem','cpu','power','net','disk']
timelast = hoststate[sorts[0]]['keys'][-1]
for sort in sorts:
for i in range(len(hoststate[sort]['keys'])):
if hoststate[sort]['keys'][i]>timestr1:
for j in range(len(hoststate[sort]['values'])):
f1.write(hoststate[sort]['keys'][i]+' 主機名稱:'+host['name']+' 主機ip:'+host['manageip']+' '+sort+':'+hoststate[sort]['values'][j]['name']+':'+hoststate[sort]['values'][j]['data'][i]+'\n')
if timelast!='':
f1.write(timelast+'\n')
else:
f1.write("00-00-00 00:00:00\n")
f1.close()
f2.close()
print('done')
else:
print('登入失敗')
Python 指令碼帶引數
如果想對python指令碼傳引數,python中對應的argc,ar c語言的命令列引數 是什麼呢?需要模組 sys 引數個數 len sys.ar 指令碼名 sys.ar 0 引數1 sys.ar 1 引數2 sys.ar 2 test.py import sys print 指令碼名 sys.a...
python爬蟲免登入 爬蟲使用cookie免登陸
由於前程無憂上崗位投遞記錄只保留兩個月,想記錄下。程式 放在github 對於怎麼獲取登陸後的頁面,有兩種思路使用賬號,密碼登陸,如果該 登陸系統簡單的話,沒有驗證碼啥的,有驗證碼的話,可以使用圖形識別庫 使用cookie繞過登陸頁面cookie cookie 複數形態cookies 中文名稱為 小...
python爬蟲模擬登入網頁 登入wish
wish登入頁面 是js寫的,在上面找登入鏈結很麻煩,直接故意寫錯登入賬號和密碼 獲得登入鏈結 上 import requests url1 url2 header 8或者不指定。data 獲得post請求的session物件 sesssion requests.session sesssion.p...