从文本中读取并为 chrome 创建随机配置文件不起作用
Reading from text and create random profile for chrome not working
为什么它在打印随机 chrome 配置文件时只启动相同的 chrome 配置文件?
我有一个文本文件:
'--profile-directory=Person 1
'--profile-directory=Person 2
它读取随机行并将其加载到 Chrome。为什么它不起作用?
我已经包含了示例 1,这是我遇到的问题:
示例 1:
import random
import random
lines = open('C:\Users\Hoxton\Pictures\1\ad.txt').read().splitlines()
myline =random.choice(lines)
print(myline)
Profiles = []
for x in (myline):
indexes = [index for index in range(len(myline))]
shuffle(indexes)
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
chrome_options1 = webdriver.ChromeOptions()
chrome_options1.add_argument(dataDir)
chrome_options1.add_argument(x)
driver = webdriver.Chrome(chrome_options=chrome_options1)
driver.get('https://www.google.com')
需要注意的是,下面的操作是完美的。
示例 2
foo = ['--profile-directory=Person 1', '--profile-directory=Person 2', '--profile-directory=Person 3', '--profile-directory=Person 4', '--profile-directory=Person 5']
from random import randrange
random_index = randrange(0,len(foo))
print(foo[random_index])
Profiles = []
for x in [foo[random_index]]:
indexes = [index for index in range(len(foo[random_index]))]
shuffle(indexes)
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
chrome_options1 = webdriver.ChromeOptions()
chrome_options1.add_argument(dataDir)
chrome_options1.add_argument(x)
driver = webdriver.Chrome(chrome_options=chrome_options1)
driver.get('https://www.google.com')
谁能帮我找到一个可以从记事本阅读的例子?我无法在第一个示例中看到我在做什么。
在示例 1 中,您正在迭代一个字符串。在示例 2 中,您正在遍历列表。
试试这个可以证明问题的例子:
import random
lines = ['--profile-directory=Person 1', '--profile-directory=Person 2', '--profile-directory=Person 3', '--profile-directory=Person 4', '--profile-directory=Person 5']
# This returns a string.
myline = random.choice(lines)
# iterate over a string (x = string char).
for x in (myline):
print(x)
# iterate over a tuple (x = tuple item).
for x in (myline,):
print(x)
上面使用了一个字符串和一个元组,尽管元组类似于示例 2 中使用的列表,使用 []
包围 foo[random_index]
成为列表 [foo[random_index]]
。
编辑:
根据评论的要求,一个可能的解决方案,因为我没有实际测试的环境。
import random
from selenium import webdriver
with open('C:\Users\Hoxton\Pictures\1\ad.txt') as r:
lines = r.readlines()
myline = random.choice(lines).strip()
# Add string to a list.
if type(myline) is str:
myline = [myline]
# Display myline
print(repr(myline))
Profiles = [] # obsolete?
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
for x in myline:
indexes = [index for index in range(len(myline))]
random.shuffle(indexes)
chrome_options1 = webdriver.ChromeOptions()
chrome_options1.add_argument(dataDir)
chrome_options1.add_argument(x)
driver = webdriver.Chrome(chrome_options=chrome_options1)
driver.get('https://www.google.com')
编辑:为 myline 添加了类型 str 检查,以防您出于某种原因从随机字符串更改为序列序列类型。
为什么它在打印随机 chrome 配置文件时只启动相同的 chrome 配置文件?
我有一个文本文件:
'--profile-directory=Person 1
'--profile-directory=Person 2
它读取随机行并将其加载到 Chrome。为什么它不起作用?
我已经包含了示例 1,这是我遇到的问题:
示例 1:
import random
import random
lines = open('C:\Users\Hoxton\Pictures\1\ad.txt').read().splitlines()
myline =random.choice(lines)
print(myline)
Profiles = []
for x in (myline):
indexes = [index for index in range(len(myline))]
shuffle(indexes)
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
chrome_options1 = webdriver.ChromeOptions()
chrome_options1.add_argument(dataDir)
chrome_options1.add_argument(x)
driver = webdriver.Chrome(chrome_options=chrome_options1)
driver.get('https://www.google.com')
需要注意的是,下面的操作是完美的。
示例 2
foo = ['--profile-directory=Person 1', '--profile-directory=Person 2', '--profile-directory=Person 3', '--profile-directory=Person 4', '--profile-directory=Person 5']
from random import randrange
random_index = randrange(0,len(foo))
print(foo[random_index])
Profiles = []
for x in [foo[random_index]]:
indexes = [index for index in range(len(foo[random_index]))]
shuffle(indexes)
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
chrome_options1 = webdriver.ChromeOptions()
chrome_options1.add_argument(dataDir)
chrome_options1.add_argument(x)
driver = webdriver.Chrome(chrome_options=chrome_options1)
driver.get('https://www.google.com')
谁能帮我找到一个可以从记事本阅读的例子?我无法在第一个示例中看到我在做什么。
在示例 1 中,您正在迭代一个字符串。在示例 2 中,您正在遍历列表。
试试这个可以证明问题的例子:
import random
lines = ['--profile-directory=Person 1', '--profile-directory=Person 2', '--profile-directory=Person 3', '--profile-directory=Person 4', '--profile-directory=Person 5']
# This returns a string.
myline = random.choice(lines)
# iterate over a string (x = string char).
for x in (myline):
print(x)
# iterate over a tuple (x = tuple item).
for x in (myline,):
print(x)
上面使用了一个字符串和一个元组,尽管元组类似于示例 2 中使用的列表,使用 []
包围 foo[random_index]
成为列表 [foo[random_index]]
。
编辑:
根据评论的要求,一个可能的解决方案,因为我没有实际测试的环境。
import random
from selenium import webdriver
with open('C:\Users\Hoxton\Pictures\1\ad.txt') as r:
lines = r.readlines()
myline = random.choice(lines).strip()
# Add string to a list.
if type(myline) is str:
myline = [myline]
# Display myline
print(repr(myline))
Profiles = [] # obsolete?
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
for x in myline:
indexes = [index for index in range(len(myline))]
random.shuffle(indexes)
chrome_options1 = webdriver.ChromeOptions()
chrome_options1.add_argument(dataDir)
chrome_options1.add_argument(x)
driver = webdriver.Chrome(chrome_options=chrome_options1)
driver.get('https://www.google.com')
编辑:为 myline 添加了类型 str 检查,以防您出于某种原因从随机字符串更改为序列序列类型。