python自定義cookie
❶ 關於用python寫的登陸程序,怎麼獲取cookie值並返回出來
兩種方式:
一、
介面,可以pip install requests模塊,安裝一個requests,對介面支持簡單好用
例子,寫一個getcookie()方法
import requests
def getcookie():
data={'username':username,'password':pwd}
session=requests.session()
loginurl="http://xxx.com/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('https://passport.csdn.net/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
❷ Python的Cookie如何正確操作運用呢案例詳解
Cookie是網站為了跟蹤用戶會話而保存在用戶瀏覽器上的文本文件。在無狀態HTTP協議中,Cookie是保持連接狀態的關鍵機制。它包含以下關鍵參數:
1. 名字(Name)
2. 值(Value)
3. 過期時間(Expires/Max-Age)
4. 作用路徑(Path)
5. 域名(Domain)
6. 安全連接(Secure)
使用Cookie進行安全連接通常包括設置Secure屬性。
在Python中操作Cookie的常見方法是利用urllib庫。通過構建包含Cookie信息的headers,可以實現Cookie的自動添加。例如,可以使用以下代碼構建包含Cookie信息的請求:
python
import urllib.request
headers = { "User-Agent": "Mozilla/5.0...}" response = urllib.request.urlopen(request)
然而,這種方法較為復雜,通常需要在瀏覽器中登錄賬戶並設置保存密碼。另一種更簡便的方法是使用Python的cookielib庫和HTTPCookieProcessor處理器。首先構建CookieJar對象來保存cookie,然後使用HTTPCookieProcessor處理這些cookie對象。通過建立opener並添加headers,可以實現登錄和訪問需要登錄的頁面。
python
import urllib.request
from http import cookiejar
cookie = cookiejar.CookieJar()
cookie_handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(cookie_handler)
為了登錄,需要發送包含用戶名和密碼的請求。通常,登錄過程會包含HTTP GET請求獲取相關信息,然後進行HTTP POST請求進行實際登錄。在POST請求中,密碼可能以明文或加密形式發送。有些網站採用動態加密,需要查看JS源碼並破解加密。
盡管大多數網站的登錄流程類似,但細節可能有所不同,因此不能保證所有網站都能成功登錄。在操作過程中,注意以下幾點:
1. 仔細檢查HTTP請求,確保發送的數據正確。
2. 注意密碼的加密方式。
3. 當遇到動態加密時,查看JS源碼以獲取加密演算法。
4. 使用cookielib和HTTPCookieProcessor簡化登錄過程。
5. 遵循官方文檔和教程學習如何正確使用這些庫和工具。
在Python學習過程中,實踐是關鍵。不斷嘗試和探索,理解Cookie在Web開發中的重要性,可以幫助你更好地理解和應用這一概念。
最後,提供一個學習資源鏈接,包括Python入門到高級項目實戰視頻教程,可幫助你更深入地學習Python和其他相關技術。在交流群中,可以與經驗豐富的開發者交流經驗和問題。請注意,本文內容基於網路資源和作者個人理解,旨在提供學習和參考信息,不涉及任何商業用途。如有版權問題,請及時聯系我們。
❸ python 如果往cookielib.CookieJar()裏手動添加欄位
defmake_cookie(name,value):
returncookielib.Cookie(
version=0,
name=name,
value=value,
port=None,
port_specified=False,
domain="xxxxx",
domain_specified=True,
domain_initial_dot=False,
path="/",
path_specified=True,
secure=False,
expires=None,
discard=False,
comment=None,
comment_url=None,
rest=None
)
jar=cookielib.CookieJar()
...
jar.set_cookie(make_cookie("name","value"))
...