Python 使用selenium 实现如何使浏览器操作免登录

最近在使用Python-selenium做一个数字货币的自动化脚本时,遇到一个问题就是本地浏览器直接打开www.okex.me,因为存在cookies缓存,所以直接就会进入到登录状态,而使用代码则不行,还需要重新登陆,可是每次登录都需要短信验证码,没限制其实也无所谓,但是这每天30次,每小时五次还是有点烦的,所有就试试看能不能使用selenium的某些功能来实现这个效果。

第一种 先登录获取到cookies保存到本地的文件中,而后再次登陆的时候在读取出来添加到请求里面,代码如下

from selenium import webdriver
import json
driver = webdriver.Chrome()
driver.get("https://www.okex.me")
cookies = driver.get_cookies()
with open("cookies.txt", "w") as fp:
    json.dump(cookies, fp)
#登录时读取
with open('cookies.txt', 'r') as f:
    cookies= json.loads(f.read())
driver.get("https://www.okex.me")
for a in cookies:
    driver.add_cookie(a)
driver.get("https://www.okex.me/otc")
最后结果是失败了,代码是没有问题的,思路也没问题,问题是这个网站......别问,菜就是罪

第二种 理论上不行那就在行动上做文章,不自己储存了,直接获取浏览器保存到本地的cookies吧

from selenium import webdriver
driverOptions = webdriver.ChromeOptions()
#这里的地址填写自己本地的google路径,直接右击所在位置或搜索Chrome即可找到
driverOptions.add_argument(r'--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data')
browser = webdriver.Chrome(options=driverOptions)
driver.get("https://www.okex.me")

运行之后直接打开了登陆后的页面,定睛一看,完成了,然后打开第二个,报错如脱肛的野马一般,向我涌来,最后推测

这个功能只能第一个浏览器可以使用,第一个不结束,第二个再使用就会出错,提示selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist),最后的结局就是只能打开第一个。

虽然这个功能对我来说也算是成功了,但是我的初衷只为完成了一半,勉强也算是没白忙。

 

 

 

你可能感兴趣的:(Python 使用selenium 实现如何使浏览器操作免登录)