Chrome 添加用户目录和配置文件目录后,代理无法连接

eqzww0vc  于 12个月前  发布在  Go
关注(0)|答案(4)|浏览(165)

我有麻烦连接到这个代理与seleniumwire,它会连接,并要求我的用户和密码,如果我删除这一行.是的,我有实际的目录和代理在真实的代码,它是改变这里的隐私原因.

chrome_options.add_argument(f'--profile-directory={profile_directory}')

字符串
我不知道如果也许配置文件目录更改代理或什么,但它只会连接,如果被删除,我如何才能使它连接,仍然使用配置文件目录?

from seleniumwire import webdriver

proxy_address = "your_proxy_address:your_proxy_port"
user_data_dir = "path/to/your/user/data/directory"
profile_directory = "YourProfileDirectory"

chrome_options = webdriver.ChromeOptions()

proxy_options = {
    'proxy': {
        'http': f'http://{proxy_address}',
        'https': f'https://{proxy_address}',
        'no_proxy': 'localhost,127.0.0.1'
    }
}

chrome_options.add_argument(f'--user-data-dir={user_data_dir}')
chrome_options.add_argument(f'--profile-directory={profile_directory}')

driver = webdriver.Chrome(seleniumwire_options=proxy_options, chrome_options=chrome_options)

driver.get("https://myurl.com/")

wnavrhmk

wnavrhmk1#

您的代理100%有效吗?或者网站不允许通过此特定代理进行连接?
刚刚尝试了你的代码与我的代理(通过登录名和密码,login:password@ip:proxy认证),它工作得很好。

import time
from seleniumwire import webdriver

proxy_address = "login:password@ip:proxy"
user_data_dir = r"C:\Users\USERNAME\Desktop\stack\userdata"
profile_directory = "Profile 2"

chrome_options = webdriver.ChromeOptions()

proxy_options = {
    'proxy': {
        'http': f'http://{proxy_address}',
        'https': f'https://{proxy_address}',
        'no_proxy': 'localhost,127.0.0.1'
    }
}

chrome_options.add_argument(f'--user-data-dir={user_data_dir}')
chrome_options.add_argument(f'--profile-directory={profile_directory}')

driver = webdriver.Chrome(seleniumwire_options=proxy_options, chrome_options=chrome_options)

driver.get("http://api.ipify.org/")

print("Waiting...")
time.sleep(10)

字符串

wkftcu5l

wkftcu5l2#

  • 给予用户数据目录路径如下-

第一个月

  • 然后添加配置文件目录参数作为配置文件的名称。
options = webdriver.ChromeOptions()
options.add_argument(r"user-data-dir=C:\Users\<username>\AppData\Local\Google\Chrome\User Data")
options.add_argument(r"profile-directory=Profile 1")

字符串

ivqmmu1c

ivqmmu1c3#

我已经通过抛出这样的问题,对我来说,这是因为我已经做了一个扩展,改变代理是否如何工作,如果你已经做了这样的事情,那么请禁用此扩展检查,如果您的代理工作,如果没有,检查它的工作,如果你添加:

chrome_options.add_argument("--disable-extensions")

字符串
如果它的工作与此参数,然后在扩展程序中的问题,它的禁用后仍然使用Chrome代理设置。和简单的解决方案是重命名的Preferences.txt文件在配置文件目录中,例如Preferences_main.txt,然后你可以尝试关闭禁用扩展程序参数。

xsuvu9jc

xsuvu9jc4#

我就是喜欢Python,我在我的项目中使用Python太多了,所以这里有一些改进和额外的注意事项

**代理认证:**如果您的代理需要认证,您需要在代理设置中包含用户名和密码。Selenium Wire支持以下格式:

proxy_options = {
    'proxy': {
        'http': f'http://{username}:{password}@{proxy_address}',
        'https': f'https://{username}:{password}@{proxy_address}',
        'no_proxy': 'localhost,127.0.0.1'
    }
}

字符串

Chrome驱动程序选项:chrome_options已弃用,改为选项。使用更新的术语是一个很好的做法:

options = webdriver.ChromeOptions()


检查参数中是否缺少--:确保所有Chrome参数都以--开头。有时缺少连字符可能会导致问题。

**显式代理身份验证:**如果您仍然面临代理身份验证问题,请考虑使用可以处理代理身份验证或使用Selenium处理身份验证弹出窗口的扩展。
**故障日志记录:**添加日志记录以帮助诊断问题。Selenium Wire允许您查看浏览器发出的请求:

from seleniumwire import webdriver

# Enable logging
webdriver.Chrome(seleniumwire_options={'enable_logging': True})

**WebDriver Path:**如果您的PATH环境变量中没有WebDriver的路径,请确保您已经指定了该路径:

driver = webdriver.Chrome(executable_path='path/to/chromedriver', seleniumwire_options=proxy_options, options=options)


错误处理:包括错误处理,以管理启动浏览器或导航到URL时可能发生的异常。
正确关闭WebDriver:确保WebDriver在使用后正确关闭,以避免任何资源泄漏。

try:
    driver.get("https://myurl.com/")
    # Your code...
finally:
    driver.quit()

**配置文件路径校验:**请仔细检查user_data_dir和profile_directory的合法性,路径不正确会导致Chrome默认启动,忽略指定配置文件。
**WebDriver Wait:**对于动态页面,请考虑使用显式等待,以确保加载与您交互的元素。
**无头模式:**为了在服务器环境中进行测试或运行,您可能希望在无头模式下运行Chrome:

options.add_argument("--headless")

相关问题