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"))
...