当前位置:首页 » 编程语言 » python自定义cookie

python自定义cookie

发布时间: 2024-12-03 23:17:24

❶ 关于用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"))
...

热点内容
漫播下载的广播剧存储路径 发布:2024-12-04 15:41:21 浏览:837
rc2在线加密 发布:2024-12-04 15:32:58 浏览:86
红米4怎么锁屏密码忘了怎么办 发布:2024-12-04 15:24:12 浏览:944
编程语言推荐 发布:2024-12-04 15:11:23 浏览:819
安卓机怎么下载酷狗音乐 发布:2024-12-04 15:10:32 浏览:189
整数划分编程 发布:2024-12-04 15:02:44 浏览:356
编程两个变量 发布:2024-12-04 14:59:27 浏览:502
服务器搭建信息化系统 发布:2024-12-04 14:59:26 浏览:974
斯柯达明锐哪个配置比较划算 发布:2024-12-04 14:50:28 浏览:12
恒星压缩枪 发布:2024-12-04 14:34:36 浏览:270