网络爬虫学习(二)

Http状态码

HTTP常用状态码
状态代码 代码描述 处理方式
200 请求成功 获得响应的内容,进行处理
201 请求完成,结果是创建了新资源。新创建资源的URI可在响应的实体中得到 爬虫中不会遇到
202 请求被接受,但处理尚未完成 阻塞等待
204 服务器端已经实现了请求,但是没有返回新的信息。如果客户是用户代理,则无须为此更新自身的文档视图 丢弃
300 该状态码不被HTTP/1.0的应用程序直接使用,只是作为3xx类型回应的默认解释。存在多个可用的被氢气资源 若程序中能够处理,则进一步处理。如果程序中不能处理,则丢弃
301 请求到的资源都会分配一个永久的URL,这样你可以在将来通过该URL来访问此资源 重定向到分配的URL
302 请求到的资源在一个不同的URL处临时保存 重定向到临时的URL
304 请求的资源未更新 丢弃
400 非法请求 丢弃
401 未授权 丢弃
403 禁止 丢弃
404 没有找到 丢弃
5xx 回应代码以“5”开头的状态码表示服务器端发现自己出现错误,不能继续执行请求 丢弃

该表引用于罗刚著《自己动手写网络爬虫》

通过上一节的学习,了解到执行请求后会得到一个响应对象,响应对象里包含了响应状态码,结合上表通过判断状态码实现进一步操作。

//执行get方法成功,返回状态码200,输出响应对象
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == HttpStatus.SC_OK){
  System.out.println(response);  
}

响应实体

就是响应的具体文档,如html文件,图片,视频等

//将响应对象以UTF-8标准字符赋值给字符串entity,并输出到控制台
String entity = EntityUtils.toString(response.getEntity(),"UTF-8"); System.out.println(entity);

 将其存储到本地

String filename = path.substring(+path.lastIndexOf('/')+1)+".html";
File f = new File(filename);
FileOutputStream fop = new FileOutputStream(f);
OutputStreamWriter writer = new OutputStreamWriter(fop,"UTF-8");
writer.append(entity);
writer.close();
fop.close();

猜你喜欢

转载自www.cnblogs.com/heibaimao123/p/7923368.html