我想使用selenium和受密码保护的代理.代理不是固定的,而是一个变量.所以这必须在代码中完成(只需在这台特定的机器上设置firefox以使用代理就不太理想了).到目前为止,我有以下代码:
fp = webdriver.FirefoxProfile()
# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", PROXY_PORT)
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://whatismyip.com")
Run Code Online (Sandbox Code Playgroud)
此时,弹出对话框,请求代理用户/通过.
是否有一种简单的方法:
我在Chrome浏览器中使用C#for Automation的Selenium Webdriver.我需要检查我的网页是否在某些区域(某些IP区域)中出现了问题.所以我必须在Chrome浏览器中设置代理.我尝试了下面的代码.代理正在设置但我收到错误.有人可以帮助我.
ChromeOptions options = new ChromeOptions();
options.AddArguments("--proxy-server=XXX.XXX.XXX.XXX");
IWebDriver Driver = new ChromeDriver(options);
Driver.Navigate().GoToUrl("myUrlGoesHere");
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我在Chrome浏览器中收到以下消息:我尝试启用"代理"选项,但"禁用更改代理设置"选项.
*无法连接到代理服务器
代理服务器是充当计算机与其他服务器之间的中介的服务器.目前,您的系统已配置为使用代理,但Google Chrome无法连接到该代理.如果您使用代理服务器...检查您的代理服务器设置或联系您的网络管理员以确保代理服务器正常工作.如果您认为自己不应该使用代理服务器:转到Chrome菜单>设置>显示高级设置...>更改代理设置...> LAN设置,然后取消选择"为LAN使用代理服务器".错误代码:ERR_PROXY_CONNECTION_FAILED*
如果您的代理服务器需要身份验证,则在下面的代码中设置代理服务器参数,然后FireFox将带来身份验证对话框,基本上您无法自动填写它.那么无论如何设置USERNAME和PASSWORD?
FirefoxProfile profile = new FirefoxProfile();
String PROXY = "192.168.1.100:8080";
OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy();
proxy.HttpProxy=PROXY;
proxy.FtpProxy=PROXY;
proxy.SslProxy=PROXY;
profile.SetProxyPreferences(proxy);
FirefoxDriver driver = new FirefoxDriver(profile);
Run Code Online (Sandbox Code Playgroud)
如果您尝试将代理字符串格式化为类似的东西http://username:pass@192.168.1.1:8080
您会收到字符串无效的错误.所以我想知道必须有一种实现这一目标的方法.
任何帮助,将不胜感激.
我有以下脚本使用python selenium Chrome驱动程序访问网页.
from selenium import webdriver
USERNAME = 'usename'
PASSWORD = 'pass'
proxies = ["xxx.xxx.xxx.xxx"]
proxy_tpl ='{0}:{1}'
proxy = proxy_tpl.format(proxies[0],'xx')
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % proxy)
chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://{0}:{1}@whatismyipaddress.com".format(USERNAME, PASSWORD))
driver.close()
Run Code Online (Sandbox Code Playgroud)
当我尝试运行脚本时,Chrome仍然会询问用户名和密码.如何从脚本验证代理服务器?
我正在使用以下代码作为代理。但是,当chrome启动时,会弹出弹窗,并且程序会被锁定。
public async void StartDriver(string proxy)
{
var proxys = new Proxy();
ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
ChromeOptions chromeOptions = new ChromeOptions();
bool flag = !string.IsNullOrEmpty(proxy);
if (flag)
{
proxys.Kind = ProxyKind.Manual;
proxys.IsAutoDetect = false;
proxys.SslProxy = proxy;
chromeOptions.Proxy = proxys;
}
driver = new ChromeDriver(chromeDriverService, chromeOptions, TimeSpan.FromMinutes(10));
await Task.Delay(2000);
}
Run Code Online (Sandbox Code Playgroud)
我尝试过 http 或 ssl 同样...
StartDriver("88.55.66.77:8080");
Run Code Online (Sandbox Code Playgroud)
或者
StartDriver("http://username:pass@88.55.66.77:8080");
Run Code Online (Sandbox Code Playgroud)
我无法使用某种代理启动浏览器。
我想要一个可以自动输入用户名和密码的代码。我不需要 autoitx3.dll。
有没有办法启动安全代理?
谢谢。