我使用selenium webdriver从网站废弃数据。来自My IP的流量很大,现在我无法访问网站(可能是我的网站被阻止了。)
有没有办法设置代理IP ,所以每次运行webdriver时它都会被视为新的Ip。?
答案 0 :(得分:1)
您可以按照以下方式使用selenium webdriver设置代理IP:
FirefoxProfile profile = new FirefoxProfile();
profile.addAdditionalPreference("network.proxy.http", "localhost");
profile.addAdditionalPreference("network.proxy.http_port", "8080");
WebDriver driver = new FirefoxDriver(profile);
您应该在上面的代码中更改所需的IP地址和端口。
有关详细信息,请查看:Selenium Webdriver with proxy
答案 1 :(得分:1)
由于您经常使用,您可能需要一个可靠的代理提供商。因此,他们中的大多数为auth提供了自己的api并使用他们的代理池。 我从Luminati.io
获得了这段代码(java)package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost proxy = new HttpHost("zproxy.luminati.io", 22225);
String res = Executor.newInstance()
.auth(proxy, "lum-customer-CUSTOMER-zone-YOURZONE", "YOURPASS")
.execute(Request.Get("http://www.telize.com/geoip").viaProxy(proxy))
.returnContent().asString();
System.out.println(res);
}
}
那里有更复杂的示例代码。
如果您只想插入任何故意代理IP进行测试,可以使用:
FirefoxProfile profile = new FirefoxProfile();
host='149.215.113.110'
port='9150'
profile.SetPreference("network.proxy.type", 1);
profile.SetPreference("network.proxy.http", host);
profile.SetPreference("network.proxy.http_port", int(port));
driver = new FirefoxDriver(profile);