前言
相信很多做店铺运营的同学都有这种需求,需要登录多个账号,但是浏览器只能同时登录一个账号,要切换账号只能重新登录,或者多开几种浏览器登录。然而作为开发人员是很讨厌那些少见的浏览器的。因此我就想要做个工具支持chrome多开。
程序设计
首先,chrome多开用命令行实现是挺简单的事情,反正就是指定一个新的user-data-dir目录就好了,但是单纯这样做开启的是一个全新的用户目录,书签什么的都没了,所以我觉得程序应该做成自动复制用户目录的形式。
然后,用户的目录不应该无限增加,占用硬盘空间,所以程序应该复用固定数量的用户目录,只有在新建进程的时候才应该换目录。
源码分享
# -*- coding: utf-8 -*-
"""
File Name: chrome_multi_user
Description :
Author : meng_zhihao
mail : 312141830@qq.com
date: 2019/5/29
"""
# 初期实现 ---- 复制默认用户目录 -- 使用新用户目录新开浏览器
# 复制能不能有选择性?
import getpass
import re
def copy_user_data(new_path):
username = getpass.getuser()
default_path = 'C:\Users\%s\AppData\Local\Google\Chrome\User Data' % username # echo %LOCALAPPDATA%\Google\Chrome\User Data
if os.path.exists(default_path) and not os.path.exists(new_path):
# option.add_argument('--user-data-dir=%s' % default_path)
cmd = 'xcopy /S/I "%s" %s' % (default_path, new_path)
os.system(cmd)
def check_chrome_process_list():
cmd = 'wmic process where name="chrome.exe" get CommandLine,ProcessId'
cmd_output = os.popen(cmd).read()
cmd_output = cmd_output.split('\n')
user_data_dir_list = []
for line in cmd_output:
user_data_dir = re.search('--user-data-dir="(.*?)"',line)
if user_data_dir:
user_data_dir = user_data_dir.group(1)
if user_data_dir not in user_data_dir_list:
user_data_dir_list.append(user_data_dir)
return user_data_dir_list
if __name__ == '__main__':
import os
# 限制最多开20个
user_data_dir_list = check_chrome_process_list()
can_set_dir_list = ["new_chrome_dir_%s"%num for num in range(20)]
for user_dir in can_set_dir_list:
if user_dir not in user_data_dir_list:
copy_user_data(user_dir)
cmd = 'start chrome --user-data-dir="%s"'%user_dir
os.popen(cmd)
break
打包后的exe文件 网盘下载
对于不想按照python环境的同学这里提供打包后的exe文件下载,双击即可运行使用
链接: https://pan.baidu.com/s/1LiNwgU-iEX1q7hErtKJ1Ug 提取码: xc5v 复制这段内容后打开百度网盘手机App,操作更方便哦 下载后双击即可使用。不过需要等前面一个新建完再新建下一个哦
做出来的东西总是希望被人使用的。
2020-02-24 有网友建议用chrome自带的用户来做,感觉是比原来的方案好,至少用户图标能在下面显示。
2023-10-13 chrome自带的用户应该也是可以用程序批量创建的,也可以创建成桌面快捷方式,但是怎么编辑用户名还不知道。