java爬虫动态ip代理的简单介绍
今天给各位分享java爬虫动态ip代理的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
Java 编写IP动态代理
package com.tan.test;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import org.apache.log4j.Logger;
public class TestProxyIp {
private static final Logger log = Logger.getLogger(TestProxyIp.class);
public static void main(String[] args) throws IOException {
System.setProperty("http.maxRedirects", "50");
System.getProperties().setProperty("proxySet", "true");
// 如果不设置,只要代理IP和代理端口正确,此项不设置也可以
String ip = "59.175.192.126";
ip = "221.214.180.130";
ip = "122.224.171.91";
ip = "58.221.213.166";
ip = "202.106.16.36";
ip = "121.8.191.34";
ip = "222.208.242.30";
ip = "219.239.90.85";
ip = "60.31.177.188";
System.getProperties().setProperty("http.proxyHost", ip);
System.getProperties().setProperty("http.proxyPort", "3128");
//确定代理是否设置成功
log.info(getHtml(""));
//log.info(getHtml(""));
}
private static String getHtml(String address){
StringBuffer html = new StringBuffer();
String result = null;
try{
URL url = new URL(address);
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
try{
String inputLine;
byte[] buf = new byte[4096];
int bytesRead = 0;
while (bytesRead = 0) {
inputLine = new String(buf, 0, bytesRead, "UTF-8");
/*if (!"".equals(inputLine)) {
System.out.println(inputLine);
}*/
html.append(inputLine);
bytesRead = in.read(buf);
inputLine = null;
}
buf = null;
}finally{
in.close();
conn = null;
url = null;
}
//result = new String(html.toString().trim().getBytes("ISO-8859-1"), "UTF-8").toLowerCase();
//result=new String(html.toString().trim().getBytes("ISO-8859-1"), "GBK");
}catch (Exception e) {
e.printStackTrace();
return null;
}/*finally{
html = null;
}*/
return html.toString();
}
}
但是找不到有用的动态ip。
爬虫代理IP怎么用
导航点击【提取代理IP】然后根据需要选择提取数量、代理协议、格式等,生成api链接
生成链接后根据需要复制或打开链接,即可使用代理IP了
为什么执行爬虫程序还要使用代理服务器?
在爬虫的时候,被爬网站是有反爬虫机制的,如果使用一个IP反复访问一个网页,就容易被出现IP限制,无法再对网站进行访问,这时就需要用到代理IP。
爬虫在抓取一个网站数据的时候,就相当于反复向一个人打招呼,有非常大的几率会被拉黑。使用代理IP更换不同IP,对方网站每次都以为是新用户,自然就没有拉黑的风险。
如果业务量不大,工作效率并没有太大要求,可以不使用代理IP。如果工作任务量大,抓取速度快,目标服务器会容易发现,所以就需要用代理IP来换IP后再抓取。通过以上的介绍,说明网络爬虫不是必须使用代理IP,但确是高效工作的好工具。目前ipidea已向众多互联网知名企业提供服务,对提高爬虫的抓取效率提供帮助,支持API批量使用,支持多线程高并发使用。
java爬虫代理如何实现
无论是使用java、Python爬取数据,都会出现IP被封的情况,所以就需要使用代理IP替我们操作。我一般会利用Java的HttpClient包,来加入动态代理功能,我使用的是芝麻HTTP代理,当然你也可以选择其他的代理提供商。
1、先声明一个代理类
2、声明一个HttpClient 对象,设置好超时时间
3、设置芝麻HTTP代理
4、测试当前的代理是否有用
5、得到服务器是否对我们进行屏蔽,如果返回的是SC_FORBIDDEN,代表被屏蔽的,那么我们就一个一个代理去试,也就是调用第四步的函数去判断当前的代理是否有用
关于java爬虫动态ip代理和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。