Seleniume Webdriver使用代理IP

时间:2015-10-15 07:24:17

标签: selenium-webdriver proxy web-scraping http-proxy

我使用selenium webdriver从网站废弃数据。来自My IP的流量很大,现在我无法访问网站(可能是我的网站被阻止了。)

有没有办法设置代理IP ,所以每次运行webdriver时它都会被视为新的Ip。?

2 个答案:

答案 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);