Java-java 抓取网站排错

Java-java 抓取网站排错

虐人心 发布于 2017-09-03 字数 1662 浏览 1147 回复 1

第一种方式:我直接根据url进行取得。但是取得的是个error字符。估计是被网站给屏蔽了。
第二种方式:我加了一个代理。但是总是连接超时。估计也被屏蔽了。 有没有什么解决方案吗?

我的代码如下:

String s = "http://home.meishichina.com/recipe-59015.html"; /javascript:void(0)/ 重新打开一个连接
URL url = new URL(s);
//使用代理
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("119.75.213.61", 80));

HttpURLConnection resumeConnection = (HttpURLConnection) url
.openConnection(proxy);
resumeConnection.setConnectTimeout(10000); //请求超时

resumeConnection.setRequestMethod("POST"); //请求方式

resumeConnection.setReadTimeout(1000); //读取超时

resumeConnection.setDoOutput(true);

resumeConnection.setDoInput(true);

resumeConnection.setUseCaches(false);

resumeConnection.setRequestProperty("Charset", "UTF-8");

resumeConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

resumeConnection.connect();

InputStream urlStream = resumeConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(urlStream, "utf-8"));
String ss = null;
String total = "";
while ((ss = bufferedReader.readLine()) != null) {
total += ss;
}
bufferedReader.close();

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-10-11 1 楼

问题已经解决:加上头,模拟成浏览器就好了。代码如下:
//模拟成ie
resumeConnection.setRequestProperty("user-agent","mozilla/4.0 (compatible; msie 6.0; windows 2000)");