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() #得到cookies的list
#这是得到cookies所有的键值list,后面进行比较
listname=[]
for cookie in cook:
[listname.append(name) for name in cookie.keys() if name not in listname] #多个cookie的key集合到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): #enumerate把list变成索引—元素对
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] #cookie跟lie 的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] #cookie跟lie 的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] #cookie跟lie 的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自动调整
效果如下,挺酷的!
- selenium2+python_用cookie实现自动登录(百度首页为例)
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- python模拟登录csdn并获取首页文章写入MySQL中(二)
- python 利用selenium模拟登录帐号验证网站并获取cookie
- python 利用selenium模拟登录帐号验证网站并获取cookie
- 在CentOS下利用Python+selenium获取腾讯首页的今日话题。
- python保存selenium的cookies写入和读出
- python selenium - 利用excel实现参数化
- 百度网盘提交提取密码:根据cookies获取loginId 的js
- python 爬虫 利用selenium模拟登录帐号 向requests中重设 cookie
- python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案
- 利用python对Excel中的特定数据提取并写入新表
- python+cookielib实现批量利用账号和密码自动获取新浪微博登录cookie
- 利用Python从数据公司接口获取数据并输出excel格式
- selenium与python自动化测试模拟登录百度
- 通过selenium来模拟登录,获取登录后的cookies
- Python入门小练习 003 利用cookielib模拟登录获取账户信息
- 使用xlwings读取excel中所有的值,写入mysql
- Python3.5爬虫入门示例-获取百度首页及相关的html页面
- python获取天气信息写入原有的excel文档