2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > selenium 获取登录cookies 并添加cookies自动登录

selenium 获取登录cookies 并添加cookies自动登录

时间:2019-03-22 01:45:32

相关推荐

selenium 获取登录cookies 并添加cookies自动登录

create-time : -12-18 12:05:30

selenium 获取登录cookies,并使用之

selenium 获取登录cookiesselenium 使用 cookies

在使用selenium 爬取淘宝商品信息的时候,发现需要登录才能查看相关商品信息。我们可以使用cookies来自动登录。

selenium 获取登录cookies

selenium 获取cookies

进入登录页面,登录。淘宝登录后会自动跳转到

selenium 获取当前页面的URL,若为则证明登录成功

webdriver.Chrome().get_cookies() 获取的cookies 是列表类型<class 'list'>,是由字典组成的list.字典中包含 domain,name,value等信息。主要需要的是每一个cookies 内的name,value 项,其他项相同。

# 中一个cookies内容,list 中的一个dict{'domain': '.', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '123456_123456'}

为了一次登录获取cookies,可以使用多次。利用pickle存储相关的cookies信息,下次可以直接调用。

pickle是Python特有的序列化工具,能够快速高效存储Python数据类型,反序列化读取后返回的仍是原先的python数据类型。而.txt 等都是字符串类型,需要转换。

小技巧: pycharm 可以自动导入包,自动导入包快捷键为Alt + Enter

import osimport pickleimport timefrom selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitbrower = webdriver.Chrome()wait = WebDriverWait(brower, 10)def getTaobaoCookies():# get login taobao cookiesurl = "/"brower.get("/member/login.jhtml")while True:print("Please login in !")time.sleep(3)# if login in successfully, url jump to while brower.current_url == url:tbCookies = brower.get_cookies()brower.quit()cookies = {}for item in tbCookies:cookies[item['name']] = item['value']outputPath = open('taobaoCookies.pickle','wb')pickle.dump(cookies,outputPath)outputPath.close()return cookies

读取cookies 信息

def readTaobaoCookies():# if hava cookies file ,use it # if not , getTaobaoCookies()if os.path.exists('taobaoCookies.pickle'):readPath = open('taobaoCookies.pickle','rb')tbCookies = pickle.load(readPath)else:tbCookies = getTaobaoCookies()return tbCookies

selenium 使用 cookies

selenium 需要先打开一个网址,才能加载进去cookies(知道cookies是哪个网站的)。添加完cookies再打开网址,使用cookies

前面读取的cookies 是一个包含着每一个cookies的name,value的字典,即name1:value1,name2:value2字典。遍历添加网站使用的每一个cookies的name,value.

tbCookies = readTaobaoCookies()brower.get("")for cookie in tbCookies:brower.add_cookie({"domain":".","name":cookie,"value":tbCookies[cookie],"path":'/',"expires":None})brower.get("")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。