python selenium登录百度首页、网盘、贴吧分别获取cookies,利用xlwings写入excel中,观察其共同点

要点:

1.myfox().work()利用自己写的文件不需要重新打开浏览器

2.browser.get_cookies()得到此时网页的cookies

3.利用xlwings打开excel进行操作,指定sheet

4.单元格定位方式有sheet[0,row]、sheet.range(row, col)等等多种

5.sheet.autofit()  sheet自动调整间隔

===================================================

在网上找了教程后,试着添加cookie   driver.add_cookie(cookie)成功登录了百度首页,但是手动一转到贴吧,就会失去登录,研究了下,原来是该cookie只在首页有效,一但跳转到百度贴吧、百度网盘,就不行了!

我想对比下这3者的cookie区别,所以想都搞下来,但是用什么保存好呢?mysql?不过好像有点费劲,得登陆,又要创建表(不过数据库确实是最好的方法,起码不用操心字典的key如何对应)。还是用excel把,然后又把xlwings重温了一遍,录入,虽然费点时间,但是效果还行,挺酷的!

对了,前提得用我编写的myfox!这样才能持续操作,还得提前手动登录好账号,这样cookie才没问题!!


import os,time,
from selenium.myfox import myfox
from selenium import webdriver
import xlwings as xw


browser=myfox().work()

cook=browser.get_cookies()  #得到cookieslist
#这是得到cookies所有的键值list,后面进行比较
listname=[]
for cookie in cook:
    [listname.append(name) for name in cookie.keys() if name not in listname] #多个cookiekey集合到listname
listname.sort()
print(listname)
#['name', 'secure', 'expiry', 'httpOnly', 'path', 'domain', 'value']

#打开excel文件
app=xw.App(visible=True,add_book=False)
wb=app.books.open(r'C:\Users\Administrator\Desktop\text.xlsx')
sheet = wb.sheets.active   #打开指定excel当前的sheet
sheet.clear()              #清除所有内容格式
time.sleep(3)

#excel的第一行每一列分别填入key,还把key-位置 放进lie字典里
lie={}
for row,key in enumerate(listname): #enumeratelist变成索引元素对
    rng=sheet[0,row]  #这种方式定位,是从0开始的,range(1,1)这种是从1开始
    rng.value = key
    lie[rng.value] = rng.address
print(lie)
#{'value': '$A$1', 'path': '$B$1', 'expiry': '$C$1', 'name': '$D$1', 'secure': '$E$1', 'domain': '$F$1', 'httpOnly': '$G$1'}

#循环cookies,把字典形式的cookie 按照第一行的key放进对应的'',而且每个cookie都往下挪一行
num = 1
for cookie in cook:
    for k, v in cookie.items():
        rng = lie[k]  #cookielie key是对应的,这样就能得出key所在的''
        col = sheet.range(rng).column  #得出''对应的数字
        row = sheet.range(rng).row + num #每一行都+1,往下挪一行
        sheet.range(row, col).value = v  #赋值,注意的是,平时'D1'都是-,此时是-    num+=1    #每次+1
    time.sleep(0.5)

##下面2个步骤都是一样的,只不过一个是贴吧,一个是首页
browser.get('https://tieba.baidu.com/')
time.sleep(3)
tieba=browser.get_cookies()
num+=1
for cookie in tieba:
    for k, v in cookie.items():
        rng = lie[k]  #cookielie key是对应的,这样就能得出key所在的''
        col = sheet.range(rng).column  #得出''对应的数字
        row = sheet.range(rng).row + num #每一行都+1,往下挪一行
        sheet.range(row, col).value = v  #赋值,注意的是,平时'D1'都是-,此时是-    num+=1    #每次+1
    time.sleep(0.5)
####百度首页
browser.get('https://baidu.com/')
time.sleep(3)
baidu=browser.get_cookies()
num+=1
for cookie in baidu:
    for k, v in cookie.items():
        rng = lie[k]  #cookielie key是对应的,这样就能得出key所在的''
        col = sheet.range(rng).column  #得出''对应的数字
        row = sheet.range(rng).row + num #每一行都+1,往下挪一行
        sheet.range(row, col).value = v  #赋值,注意的是,平时'D1'都是-,此时是-    num+=1    #每次+1
    time.sleep(0.5)

sheet.autofit()#整个sheet自动调整

效果如下,挺酷的!









猜你喜欢

转载自blog.csdn.net/qq_38282706/article/details/80461946