专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java爬虫技术之再战江湖(java爬虫技术之再战江湖在哪里)

temp10 2024-09-09 08:29:22 java教程 15 ℃ 0 评论

随着大数据技术兴起,互联网江湖再现波澜。数据采集这门一本万利的生意,一直被python这个门派所独揽,独步天下,无人能敌。但是,Java的爬虫技术仍是不可小觑。接下来,小猿就带大家一起来看看关于Java爬虫的入门知识。


Java爬虫技术之再战江湖(java爬虫技术之再战江湖在哪里)


1

入门秘籍之Http协议和robots协议

《HTTP协议》,HyperText Transfer Protocol也就是超文本传输协议。是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等)。

Http协议的工作原理:HTTP协议工作于客户端-服务端架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求,服务器端接到请求之后把相应的资源信息响应给客户端,从而完成一个请求响应的过程。

如图所示:



Http协议有以下特点:

1.HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2.HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

3.HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

2

数据消息格式

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

如图所示:



请求行以一个请求符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:

Method Request-URI HTTP-Version CRLF

实例:GET /login.jsp HTTP/1.1

其中GET是本次请求所采用的请求方法,HTTP请求方法有七种:



请求头部信息:

请求头部由key/value键值对组成,每行一对。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

Accept: text/html,image/*

Accept-Charset: UTF-8

Accept-Encoding: gzip,compress

Accept-Language: en-us,zh-cn

Host: www.zhidisoft.com:80

If-Modified-Since: Tue, 11 Jul 2017 18:23:51 GMT

Referer: http://www.zhidisoft.com/index.jsp

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

Connection: close/Keep-Alive

Date: Tue, 11 Jul 2017 18:23:51 GMT

3

HTTP响应(response)

服务器端对一个HTTP请求处理完毕之后,服务器会返回给客户端一些信息,这就是HTTP响应。一个HTTP响应代表服务器向客户端回送的数据,它也包括三个部分:一个状态行、若干消息头、以及实体内容 。其中的一些消息头和实体内容都是可选的,消息头和实体内容间要用空行隔开:



HTTP状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

HTTP-Versio:表示服务器HTTP协议的版本

Status-Code:表示服务器发回的响应状态代码

Reason-Phrase:表示状态代码的文本描述

状态码用于表示服务器对请求的处理结果。

响应状态码分为5类,如下所示:



消息报头:

与请求报头类似,不同在于请求报头附带的是关于请求的相关信息,而消息报头则附带的是服务端应答的相关信息。

常见的响应头:

Content-Encoding: gzip

Content-Type: text/html; charset=UTF-8

Last-Modified: Tue, 11 Jul 2017 18:23:51 GMT

Expires: -1

Cache-Control: no-cache

Pragma: no-cache

Connection: close/Keep-Alive

Date: Tue, 11 Jul 2017 18:23:51 GMT

4

Robots协议

《robots协议》,Robots协议全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,也称为爬虫协议、机器人协议等。Robots协议可以屏蔽一些网站中比较大的文件,如:图片,音乐,视频等,节省服务器带宽;可以屏蔽站点的一些死链接。方便搜索引擎抓取网站内容;设置网站地图连接,方便引导蜘蛛爬取页面。



Robots协议的语法格式:

Disallow: /表示禁止访问,Allow: /表示允许访问。

在写robots.txt时需特别注意的是,/前面有一个英文状态下的空格(必须是英文状态下的空格)。

禁止搜索引擎访问网站中的某几个文件夹,以a、b、c为例,写法分别如下:

Disallow: /a/

Disallow: /b/

Disallow: /c/

禁止搜索引擎访问文件夹中的某一类文件,以a文件夹中的js文件为例,写法如下:

Disallow: /a/*.js

只允许某个搜索引擎访问,以Baiduspider为例,写法如下:

User-agent: Baiduspider

Disallow:

禁止访问网站中的动态页面

User-agent: *

Disallow: /*?*

只允许搜索引擎访问某类文件,以htm为例,写法如下:

User-agent: *

Allow: .htm$

Disallow: /

禁止某个搜索引擎抓取网站上的所有图片,以Baiduspider为例,写法如下:

User-agent: Baiduspider

Disallow: .jpg$

Disallow: .jpeg$

Disallow: .gif$

Disallow: .png$

Disallow: .bmp$

robots.txt文件存放在网站根目录下,并且文件名所有字母都必须小写。

来源于猿来如此呀公众号,更多资讯可点击下方链接了解更多。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表