selenium 获取登录cookies,并添加cookies自动登录
2018-12-18 14:47
344 查看
create-time : 2018-12-18 12:05:30
selenium 获取登录cookies,并使用之
在使用selenium 爬取淘宝商品信息的时候,发现需要登录才能查看相关商品信息。我们可以使用cookies来自动登录。
selenium 获取登录cookies
selenium 获取cookies
进入登录页面,登录。淘宝登录后会自动跳转到
https://www.taobao.com
selenium 获取当前页面的URL,若为
https://www.taobao.com则证明登录成功
webdriver.Chrome().get_cookies() 获取的cookies 是列表类型
<class 'list'>,是由字典组成的list.字典中包含 domain,name,value等信息。主要需要的是每一个cookies 内的name,value 项,其他项相同。
# https://www.baidu.com 中一个cookies内容,list 中的一个dict {'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '123456_123456'}
为了一次登录获取cookies,可以使用多次。利用
pickle存储相关的cookies信息,下次可以直接调用。
pickle 是Python特有的序列化工具,能够快速高效存储Python数据类型,反序列化读取后返回的仍是原先的python数据类型。而.txt 等都是字符串类型,需要转换。
- 小技巧: pycharm 可以自动导入包,自动导入包快捷键为
Alt + Enter
import os import pickle import time from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait brower = webdriver.Chrome() wait = WebDriverWait(brower, 10) def getTaobaoCookies(): # get login taobao cookies url = "https://www.taobao.com/" brower.get("https://login.taobao.com/member/login.jhtml") while True: print("Please login in taobao.com!") time.sleep(3) # if login in successfully, url jump to www.taobao.com 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("https://www.taobao.com") for cookie in tbCookies: brower.add_cookie({ "domain":".taobao.com", "name":cookie, "value":tbCookies[cookie], "path":'/', "expires":None }) brower.get("https://www.taobao.com")
相关文章推荐
- 通过selenium来模拟登录,获取登录后的cookies
- 使用selenium自动登录淘宝并获取cookie
- python selenium登录百度首页、网盘、贴吧分别获取cookies,利用xlwings写入excel中,观察其共同点
- Selenium实例1-自动登录小米社区并获取主题帖
- python selenium chrome使用代理自动登录,并可以远程调用
- 使用python+selenium完成qq空间自动登录小程序
- Cookie创建-获取-持久化、自动登录、购物记录、作用路径
- java实现自动登录,并获取数据
- Java Selenium模拟某电商登录获取豆豆信息+JUnit单元测试
- selenium+python京东自动登录及秒杀
- PHP CURL获取cookies模拟登录的方法
- VB自动登录检测并添加域名
- [selenium]实现自动登录163邮箱并发送邮件
- Selenium2测试工具入门——自动登录百度搜索
- mysql获取刚插入(添加)记录的自动编号id
- 宝宝小爬虫Selenium自动获取网页cookie+Curl数据查询
- python实现QQ机器人(自动登录,获取群消息,发送群消息)
- Python实现Selenium实现自动登录CSDN
- T-SQL语句循环批量添加登录用户和数据库用户并自动创建架构,为每个用户添加Create table权限
- HttpWebRequest自动登录网站并获取网站内容(不包含验证码的网站)