我有一个使用ChromeDriver的项目和我付费的代理。代理上没有身份验证。它过去设置代理很好,但现在当我运行它时,如果我检查我的公共IP地址,它仍然是我的地址,而不是代理地址。我不确定Chrome是否更改了什么,但有人知道如何让代理重新工作吗?
string proxyAddress = "https://xxx.xx.xx.xxx:xxxx"; //the x's are just masking the actual ip address
ChromeDriverService cds = ChromeDriverService.CreateDefaultService();
ChromeOptions co = new ChromeOptions();
if (!String.IsNullOrWhiteSpace(proxyAddress))
{
co.Proxy = new Proxy(){
HttpProxy = proxyAddress,
Kind = ProxyKind.Manual,
IsAutoDetect = false
};
}
co.AddArgument("ignore-certificate-errors");
co.AddArguments("chrome.switches", "--disable-extensions");
cds.HideCommandPromptWindow = true;
ChromeDriver drv;
if (commandTimeout != null)
{
drv = new ChromeDriver(cds, co, (TimeSpan)commandTimeout);
}
else
{
drv = new ChromeDriver(cds, co);
}
我也试过,但每个网站Chrome都会说";无法访问此网站";并且具有错误代码:ERR_NO_SUPPORTED_PROXIES。
string proxyAddress = "https://xxx.xx.xx.xxx:xxxx"; //the x's are just masking the actual ip address
ChromeDriverService cds = ChromeDriverService.CreateDefaultService();
ChromeOptions co = new ChromeOptions();
if (!String.IsNullOrWhiteSpace(proxyAddress))
{
co.AddArgument(String.Format("--proxy-server={0}", proxyAddress));
}
co.AddArgument("ignore-certificate-errors");
co.AddArguments("chrome.switches", "--disable-extensions");
cds.HideCommandPromptWindow = true;
ChromeDriver drv;
if (commandTimeout != null)
{
drv = new ChromeDriver(cds, co, (TimeSpan)commandTimeout);
}
else
{
drv = new ChromeDriver(cds, co);
}
对于遇到相同问题的任何人,我设法通过替换使其正常工作
co.AddArgument(String.Format("--proxy-server={0}", proxyAddress));
用这个
co.AddArgument(String.Format("--proxy-server=http://{0}:{1};https://{0}:{1}", proxy.Address.Host, proxy.Address.Port));
我唯一的猜测是,它需要同时为http和https设置。