在网络爬虫中,经常会遇到如下报错。即连接超时。针对此问题,一般解决思路为:将连接时间、请求时间设置长一下。如果出现连接超时的情况,则在重新请求【设置重新请求次数】。

Exception in thread "main" java.net.ConnectException: Connection timed out: connect

下面的代码便是使用httpclient解决连接超时的样例程序。直接上程序。

package daili;import java.io.IOException;
import java.net.URI;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.params.CookiePolicy;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie2;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
/** author:合肥工业大学 管院学院 钱洋 *1563178220@qq.com
*/
public class Test1 {public static void main(String[] args) throws ClientProtocolException, IOException, InterruptedException {getRawHTML("http://club.autohome.com.cn/bbs/forum-c-2098-1.html#pvareaid=103447");}public static String getRawHTML ( String url ) throws ClientProtocolException, IOException, InterruptedException{//初始化DefaultHttpClient httpclient = new DefaultHttpClient();httpclient.getParams().setParameter("http.protocol.cookie-policy",  CookiePolicy.BROWSER_COMPATIBILITY);//设置参数HttpParams params = httpclient.getParams(); //连接时间HttpConnectionParams.setConnectionTimeout(params, 6000);  HttpConnectionParams.setSoTimeout(params, 6000*20);  //超时重新请求次数DefaultHttpRequestRetryHandler dhr = new DefaultHttpRequestRetryHandler(5,true);  HttpContext localContext = new BasicHttpContext();  HttpRequest request2 = (HttpRequest) localContext.getAttribute(  ExecutionContext.HTTP_REQUEST);  httpclient.setHttpRequestRetryHandler(dhr);BasicCookieStore cookieStore = new BasicCookieStore();  BasicClientCookie2 cookie = new BasicClientCookie2("Content-Type","text/html;charset=UTF-8");  BasicClientCookie2 cookie1 = new BasicClientCookie2("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36");cookieStore.addCookie(cookie); cookieStore.addCookie(cookie1);localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);  HttpGet request = new HttpGet(); request.setURI(URI.create(url));HttpResponse response = null;  String rawHTML = "";response = httpclient.execute(request,localContext); int StatusCode = response.getStatusLine().getStatusCode(); //获取响应状态码System.out.println(StatusCode);if(StatusCode == 200){                          //状态码200表示响应成功//获取实体内容rawHTML = EntityUtils.toString (response.getEntity());System.out.println(rawHTML);//输出实体内容EntityUtils.consume(response.getEntity());       //消耗实体}else {//关闭HttpEntity的流实体EntityUtils.consume(response.getEntity());        //消耗实体Thread.sleep(20*60*1000);  //如果报错先休息30分钟}httpclient.close();System.out.println(rawHTML);return rawHTML;}
}

java网络爬虫连接超时解决[实战程序]相关推荐

  1. 常见的一些反爬虫策略(下篇)-Java网络爬虫系统性学习与实战系列(10)

    常见的一些反爬虫策略(下篇)-Java网络爬虫系统性学习与实战系列(10) 文章目录 联系方式 反爬虫策略 文本混淆 SVG映射 CSS文字偏移 图片混淆伪装 字体反爬 Referer字段反爬 数据分 ...

  2. InfoQ网站作者的文章列表文章详情获取-Java网络爬虫系统性学习与实战系列(13)

    InfoQ网站作者的文章列表&文章详情获取-Java网络爬虫系统性学习与实战系列(13) 文章目录 联系方式 概述 分析 配置好Xpath规则 selenium工具类 获取InfoQ文章列表 ...

  3. 掘金网站作者的文章列表文章详情获取-Java网络爬虫系统性学习与实战(14)

    掘金网站作者的文章列表&文章详情获取-Java网络爬虫系统性学习与实战(14) 文章目录 联系方式 概述 分析 配置好Xpath规则 selenium工具类 获取文章列表 获取文章详情数据 p ...

  4. 在不同领域,大家用爬虫怎么盈利的-Java网络爬虫系统性学习与实战系列(4)

    在不同领域,大家用爬虫怎么盈利的-Java网络爬虫系统性学习与实战系列(4) 文章目录 概述 出行抢票软件 微博上的僵尸粉 电商比价/返利平台 社区抓取数据和内容 联系方式 系列文章地址: Java网 ...

  5. 了解爬虫的风险与以及如何规避风险-Java网络爬虫系统性学习与实战系列(3)

    了解爬虫的风险与以及如何规避风险-Java网络爬虫系统性学习与实战系列(3) 文章目录 概述 法律风险 民事风险 刑事风险 个人信息的法律风险 著作权的风险(文章.图片.影视等数据) 5不要 3准守 ...

  6. Java网络爬虫实战案例一

    紧接我们上次的问题,如何获取服务器发送的资源,保存到本地?上一篇文章见java网络爬虫核心原理. 一.Java IO流三分游(input,output)   我们知道计算机是用来处理数据的.所有的程序 ...

  7. java网络爬虫,乱码问题终于完美解决

    java网络爬虫,乱码问题终于完美解决 参考文章: (1)java网络爬虫,乱码问题终于完美解决 (2)https://www.cnblogs.com/-LilyBlog-/p/7593841.htm ...

  8. Java网络爬虫学习记录(请求基础篇)

    目录 个人实验遇见错误集: 一.javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX ...

  9. 第三十六期:学 Java 网络爬虫,需要哪些基础知识?

    说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬 ...

最新文章

  1. STM32CubedMX 下载与安装
  2. 从设计网络就开始知识蒸馏
  3. Windows 全部调试符号包下载
  4. Java中实现使用split方法分隔字符串
  5. 深度学习之windows python faster rcnn 配置及demo运行
  6. 行为型模式:中介者模式
  7. Python开发【第七篇】: 面向对象和模块补充
  8. [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.
  9. 《Python Cookbook 3rd》笔记(5.13):读写压缩文件
  10. Flutter延时任务、Flutter通过Future与Timer实现延时任务
  11. php是视频还是图片格式,php 视频、音频和图片文件上传,该如何解决
  12. php用win还是linux系统,做网站选择linux系统还是选择windows系统好?
  13. 【Ansys Workbench】—直接优化
  14. idm下载器怎么下载网页视频?如何用idm自动下载网站文件?
  15. 中国移动飞信的研究 笔记二
  16. 二级域名分发系统美化版网站源码 附搭建教程
  17. LTE语音业务-VOLTE(一)
  18. GPT磁盘如何正确分区以及UEFI引导怎么修复?
  19. Rooting A Linux System 101
  20. 2016年4月计算机组成原理试题答案,2019年4月江苏自考02318计算机组成原理模拟试题及答案...

热门文章

  1. Javascript里的sleep()方法
  2. 容器编排技术 -- Kubernetes 应用连接到 Service
  3. 数据库面试 - 分库分表
  4. 【C#】CsvHelper 使用手册
  5. Docker实战部署JavaWeb项目-基于SpringBoot
  6. Dynamics 365执行操作报SQL Server已超时,更改这个超时设置的方法
  7. 无公网ip远程访问调试-内网穿透工具
  8. C#LeetCode刷题-链表
  9. git 别名_Git别名简介:使用Git的更快方法
  10. github ssh密钥_如何使用SSH密钥在一台机器上管理多个GitHub帐户