|
@@ -2194,6 +2194,7 @@ if __name__ == '__main__':
|
|
|
"pause_key": "p", # 暂停键
|
|
|
"version": "0.6.3",
|
|
|
"docker_driver": "",
|
|
|
+ "user_folder": "",
|
|
|
}
|
|
|
c = Config(config)
|
|
|
print(c)
|
|
@@ -2289,35 +2290,43 @@ if __name__ == '__main__':
|
|
|
os.mkdir(tmp_user_folder_parent)
|
|
|
characters = string.ascii_letters + string.digits
|
|
|
for i in range(len(c.ids)):
|
|
|
- id = c.ids[i]
|
|
|
- # 从字符集中随机选择字符构成字符串
|
|
|
- random_string = ''.join(random.choice(characters) for i in range(10))
|
|
|
- tmp_user_data_folder = os.path.join(tmp_user_folder_parent, "user_data_" + str(id) + "_" + str(time.time()).replace(".","") + "_" + random_string)
|
|
|
- tmp_options[i]["tmp_user_data_folder"] = tmp_user_data_folder
|
|
|
- if os.path.exists(tmp_user_data_folder):
|
|
|
- try:
|
|
|
- shutil.rmtree(tmp_user_data_folder)
|
|
|
- except:
|
|
|
- pass
|
|
|
- print(f"Copying user data folder to: {tmp_user_data_folder}, please wait...")
|
|
|
- print(f"正在复制用户信息目录到: {tmp_user_data_folder},请稍等...")
|
|
|
- if os.path.exists(absolute_user_data_folder):
|
|
|
- try:
|
|
|
- shutil.copytree(absolute_user_data_folder, tmp_user_data_folder)
|
|
|
- print("User data folder copied successfully, if you exit the program before it finishes, please delete the temporary user data folder manually.")
|
|
|
- print("用户信息目录复制成功,如果程序在运行过程中被手动退出,请手动删除临时用户信息目录。")
|
|
|
- except:
|
|
|
- tmp_user_data_folder = absolute_user_data_folder
|
|
|
- print("Copy user data folder failed, use the original folder.")
|
|
|
- print("复制用户信息目录失败,使用原始目录。")
|
|
|
- else:
|
|
|
- tmp_user_data_folder = absolute_user_data_folder
|
|
|
- print("Cannot find user data folder, create a new folder.")
|
|
|
- print("未找到用户信息目录,创建新目录。")
|
|
|
options = tmp_options[i]["options"]
|
|
|
- options.add_argument(
|
|
|
- f'--user-data-dir={tmp_user_data_folder}') # TMALL 反扒
|
|
|
options.add_argument("--profile-directory=Default")
|
|
|
+ if c.user_folder == "":
|
|
|
+ id = c.ids[i]
|
|
|
+ # 从字符集中随机选择字符构成字符串
|
|
|
+ random_string = ''.join(random.choice(characters) for i in range(10))
|
|
|
+ tmp_user_data_folder = os.path.join(tmp_user_folder_parent, "user_data_" + str(id) + "_" + str(time.time()).replace(".","") + "_" + random_string)
|
|
|
+ tmp_options[i]["tmp_user_data_folder"] = tmp_user_data_folder
|
|
|
+ if os.path.exists(tmp_user_data_folder):
|
|
|
+ try:
|
|
|
+ shutil.rmtree(tmp_user_data_folder)
|
|
|
+ except:
|
|
|
+ pass
|
|
|
+ print(f"Copying user data folder to: {tmp_user_data_folder}, please wait...")
|
|
|
+ print(f"正在复制用户信息目录到: {tmp_user_data_folder},请稍等...")
|
|
|
+ if os.path.exists(absolute_user_data_folder):
|
|
|
+ try:
|
|
|
+ shutil.copytree(absolute_user_data_folder, tmp_user_data_folder)
|
|
|
+ print("User data folder copied successfully, if you exit the program before it finishes, please delete the temporary user data folder manually.")
|
|
|
+ print("用户信息目录复制成功,如果程序在运行过程中被手动退出,请手动删除临时用户信息目录。")
|
|
|
+ except:
|
|
|
+ tmp_user_data_folder = absolute_user_data_folder
|
|
|
+ print("Copy user data folder failed, use the original folder.")
|
|
|
+ print("复制用户信息目录失败,使用原始目录。")
|
|
|
+ else:
|
|
|
+ tmp_user_data_folder = absolute_user_data_folder
|
|
|
+ print("Cannot find user data folder, create a new folder.")
|
|
|
+ print("未找到用户信息目录,创建新目录。")
|
|
|
+ options.add_argument(
|
|
|
+ f'--user-data-dir={tmp_user_data_folder}') # TMALL 反扒
|
|
|
+ print(f"Use local user data folder: {tmp_user_data_folder}")
|
|
|
+ print(f"使用本地用户信息目录: {tmp_user_data_folder}")
|
|
|
+ else:
|
|
|
+ options.add_argument(
|
|
|
+ f'--user-data-dir={c.user_folder}')
|
|
|
+ print(f"Use specifed user data folder: {c.user_folder}", ", please note if you are using docker, this user folder path should be the path inside the docker container.")
|
|
|
+ print(f"使用指定的用户信息目录: {c.user_folder}", ",请注意如果您正在使用docker,此用户文件夹路径应是容器内的路径。")
|
|
|
print(
|
|
|
"如果报错Selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally,说明有之前运行的Chrome实例没有正常关闭,请关闭之前打开的所有Chrome实例后再运行程序即可。")
|
|
|
print(
|