使用代理 IP 的 Selenium Webdriver
Selenium Webdriver using Proxy IP
我正在使用 selenium webdriver 从 website.due 抓取来自我的 IP 的大量流量的数据,现在我无法访问网站(可能是我的 ip 被网站阻止)。
有什么方法可以设置代理 IP,以便每次 运行 网络驱动程序时都将其视为新 IP..?
您可以按照以下方式使用 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
因为你经常抓取,你可能需要一个可靠的代理提供商。因此,他们中的大多数人都提供自己的 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);
我正在使用 selenium webdriver 从 website.due 抓取来自我的 IP 的大量流量的数据,现在我无法访问网站(可能是我的 ip 被网站阻止)。
有什么方法可以设置代理 IP,以便每次 运行 网络驱动程序时都将其视为新 IP..?
您可以按照以下方式使用 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
因为你经常抓取,你可能需要一个可靠的代理提供商。因此,他们中的大多数人都提供自己的 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);