當前位置:成語大全網 - 新華字典 - 關於用python寫的登陸程序,怎麽獲取cookie值並返回出來

關於用python寫的登陸程序,怎麽獲取cookie值並返回出來

兩種方式:

壹、

接口,可以pip install requests模塊,安裝壹個requests,對接口支持簡單好用

例子,寫壹個getcookie()方法

import requests

def getcookie():

data={'username':username,'password':pwd}

session=requests.session()

loginurl="/login"

#具體要接口登錄後才可以獲得cookies

result=session.post(loginurl,data=data)

cookies=requests.utils.dict_from_cookiejar(session.cookies)

return cookies

二、

UI自動化登錄:可以easy_install -U selenium,安裝selenium模塊,支持UI自動化,模擬前端,用戶名、密碼登錄後,這種方式也可以獲得cookie

壹個例子,登錄csdn,並且獲取cookie,用戶名和密碼我隱去了,可以參考。

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

import selenium

import os,time

import sys

sys.path.append("..")

import web

import datetime

#默認得安裝壹個火狐瀏覽器

class webconn:

def __init__(self,drivertype):

self.drivertype=drivertype

def web_conn(self):

PASS=0

FAIL=0

get_cookie={}

t=datetime.datetime.now()

starttime=datetime.datetime.now()

driver = webdriver.Firefox()

try:

driver.get('/account/login')

time.sleep(2)

assert u'帳號登錄' in driver.title

driver.find_element_by_id("username").send_keys(u"yoursername")

print "輸入用戶名"

driver.find_element_by_id("password").send_keys(u"yourpassword")

print "輸入密碼"

driver.find_element_by_class_name("logging").click()

time.sleep(2)

assert u'全球最大中文' in driver.title

driver.add_cookie({'name':'key-aaaaaa','value':'value-bbbb'})

for cookie in driver.get_cookies():

print "%s -> %s" %(cookie['name'],cookie['value'])

get_cookie[cookie['name'].encode("UTF-8")]=cookie['value'].encode("UTF-8")

print "cookie cookie cookie cookie cookie"

print get_cookie

PASS=PASS+1

except Exception,e:

print(str(Exception)+":"+str(e))

FAIL=FAIL+1

finally:

driver.close()

driver.quit()

endtime=datetime.datetime.now()

totaltime=endtime-starttime

usetime=str(endtime-starttime)

hour=usetime.split(':').pop(0)

minute=usetime.split(':').pop(1)

second=usetime.split(':').pop(2)

totaltime=float(hour)*60*60+float(minute)*60+float(second)

totaltime=str(totaltime)+"s"

return get_cookie