爬虫专栏
_404_NOT_FOUND_
很多事情从你决定开始的一瞬间就变了,更好或者更差。坚持下去,最困难的时刻终会过去的
展开
-
一、HttpClient简介与HTTP简介
1.HttpClient 简介超文本传输协议(HTTP)也许是当今互联网上所使用的最重要的协议了。Web services,联网设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量。 尽管java.net包提供了通过HTTP访问资源的基本功能,但它缺少足够的灵活性和其它很多应用程序需要的功...原创 2018-07-19 16:27:50 · 1057 阅读 · 0 评论 -
九、HttpClient状态管理(cookie相关)
1.HTTP cookieCookie 是 HTTP 代理和目标服务器可以交流保持会话的状态信息的令牌或小的数据包。网景公司的工程师把它称为“魔法小甜饼”("magic cookie"),这个名字好像有粘性一样。HttpClient 使用 Cookie 接口来代表抽象的 cookie 令牌。 HTTP中简单形式中的cookie是名/值对。 通常一个 HTTP 的 cookie 也包含一些属...原创 2018-07-20 13:22:11 · 2124 阅读 · 0 评论 -
八、终止请求和重定向处理
1.终止请求在一些情况下,由于目标服务器的高负载或客户端有很多同时的请求发出,那么 HTTP 请求会在预期的时间内执行失败。 这时,有必要过早地中止请求,解除在 I/O 执行中的线程锁。 HttpClient 执行时,可以在任意阶段通过调用HttpUriRequest#abort()方法中止请求。 这个方法是线程安全的,而且可以从任意线程中调用。当一个 HTTP 请求被中止时,它的执行线程--...原创 2018-07-20 13:10:04 · 714 阅读 · 0 评论 -
七、HttpClient 异常处理
HttpClient 能够抛出两种类型的异常:1)java.io.IOException :在 I/O 失败时,如socket连接超时或被重置的异常;2)HttpException:标志 HTTP 请求失败的信号,如违反 HTTP 协议。通常 I/O 错误被认为是非致命的和可以恢复的,而 HTTP 协议错误,则被认为是致命的而且是不能自动恢复的。请注意HttpClient实现了可抛出异常H...原创 2018-07-19 17:42:39 · 8320 阅读 · 1 评论 -
六、HTTP协议拦截器
HTTP协议拦截器是一个实现了HTTP协议特定方面的程序。通常协议拦截器将作用于报文的一个特定的首部或一组相关的首部。或者添加一个特定的首部或一组相关的首部到将要发送的报文中。协议拦截器也可以操作报文内含的实体--显而易见的内容解压/压缩就是一个好的例子。包装实体类使用了装饰模式对原始的实体进行装饰。几个协议拦截器能够结合构成一个逻辑单元。协议拦截器能够通过共享信息来合作--比如处理状态--通...原创 2018-07-19 17:21:36 · 2983 阅读 · 0 评论 -
五、HttpClient执行上下文HttpContext
HttpClientContext context = HttpClientContext.create();最初,HTTP是被设计成无状态的,面向请求-响应的协议。然而,现实世界中的应用程序经常需要通过一些逻辑相关的请求-响应交换来保持状态信息。 为了使应用程序能够维持一个过程状态, HttpClient允许HTTP请求在一个特定的执行上下文中来执行--称为HTTP上下文。如果相同的上下文...原创 2018-07-19 16:59:11 · 6011 阅读 · 1 评论 -
四、简单的HttpGet请求、HttpPost请求、HttpHead请求案例
httpclient 支持http1.1的六种请求方法,options,put,delete,trace,get,head,post,这里只列举常用的get,head和post请求 1. Get请求 /** * 简单的get请求 * GET 请求指定的页面信息,并返回实体主体 * @throws IOException */public void getDemo() ...原创 2018-07-19 16:49:56 · 14164 阅读 · 0 评论 -
三、HttpClient基本执行请求
前言HttpClient最基本的功能是执行HTTP方法,一次 HTTP 方法的执行包含一个或多个 HTTP 请求/响应的交互,通常由 HttpClient的内部来处理。使用者需要提供一个Request对象来执行HTTP请求,HttpClient就会把请求传送给目标服务器并返回一个相对应的Response对象,如果执行不成功,将会抛出一个异常。显然,HttpClient API 的主要切入点就是...原创 2018-07-19 16:44:31 · 373 阅读 · 0 评论 -
二、构建HttpClient开发环境
本系列教程使用maven开发,依赖为:<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</versi...原创 2018-07-19 16:30:36 · 522 阅读 · 0 评论 -
搭建简单JAVA分布式爬虫系统
先贴一张架构图 整体架构分三个部分:调度器 :分配任务爬虫 :爬取数据并保存监控系统 :查看爬虫状态(主要作用是某个节点down掉了可以今早发现,虽然不影响整体稳定性,但是影响爬虫效率) 爬虫部分爬虫系统是一个独立运行的进程,我们把我们的爬虫系统打包成 jar 包,然后分发到不同的节点上执行,这样并行爬取数据可以提高...原创 2018-08-03 17:08:53 · 4664 阅读 · 4 评论