在一些有反爬虫技术的网站中,检测到同一ip在短时间内多次访问的时候,可能就会禁掉这个ip。
上有政策,下有对策,为了应对这种情况,可以使用多个代理ip去爬取这个网站。
java使用代理ip有两种方法:
1.设置System系统属性
// 设置代理IP
System.getProperties().setProperty("proxySet", "true");
System.getProperties().setProperty("http.proxyHost", "218.26.204.66");
System.getProperties().setProperty("http.proxyPort", "8080");
HttpURLConnection connection = (HttpURLConnection)new URL("http://www.baidu.com/").openConnection();
connection.setConnectTimeout(6000); // 6s
connection.setReadTimeout(6000);
connection.setUseCaches(false);
if(connection.getResponseCode == 200)
{
System.out.println("使用代理IP连接网络成功");
}
2.使用java.net.Proxy类
// 使用java.net.Proxy类设置代理IP
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("123.22.43.3", 8080));
HttpURLConnection connection = null;
try {
connection = (HttpURLConnection)new URL("http://www.baidu.com/").openConnection(proxy);
} catch (IOException e) {
e.printStackTrace();
}
connection.setConnectTimeout(6000); // 6s
connection.setReadTimeout(6000);
connection.setUseCaches(false);
try {
if(connection.getResponseCode() == 200)
{
System.out.println("使用代理IP连接网络成功");
}
} catch (IOException e) {
e.printStackTrace();
}