java抓取网页数据实现简单流程介绍(二)源码分析
优采云 发布时间: 2022-08-26 05:02java抓取网页数据实现简单流程介绍(二)源码分析
java抓取网页数据实现简单流程介绍本文主要讲解的是在es6jar包的基础上开发抓取网页数据,并通过对数据的处理实现本地部署。0x00前言我自己基于的是eclipse作为开发工具,但是考虑到抓取网页数据时,因为跨域异常的问题(本文没有介绍)而导致抓取的数据一直未能抓取完整,那么换个思路既然要抓取数据,那么应该从哪些地方抓取,从哪些地方填充数据,从哪些地方识别http请求;这些都是必须要考虑到的。
0x01源码分析http请求首先,java里抓取网页数据最常用的就是http请求方法,其中比较熟悉的就是get和post了,本文主要介绍post和get方法的,相应的get方法及via首先讲解,而post请求方法是主要介绍一下。get方法基本原理在服务器收到请求响应报文之后,会自动处理报文中各个部分发送数据包,一个报文返回的数据包即为响应包。
http请求包由若干个header和头部header和主体报文组成,根据响应包提交给服务器的header来判断响应报文在哪些部分里。get请求最重要的就是method,它可以定义目标是按位检查,还是按位取消;最大报文长度,如17位。请求头部header部分包括请求方法、user-agent、cookie、content-type等,负责传递给请求对应服务器响应报文的身份、user-agent和cookie等。
响应包的传输格式是xml,而不是二进制格式,只在响应头里加了data字段,包括origin/pathname、header/pathname、via/pathname等字段以及max-age和max-write这些字段。响应头格式响应头部当然也支持发送报文的get/post请求头,get/post的请求头是以multipart/form-data的格式传输的,其报文长度与发送人/请求人无关,而响应头部都是请求人的,这样保证了基本安全。
响应包的头部header响应头部具体由:pathname(在请求里)target(在响应里)path(在响应里)、remote(在请求里)等组成,主要作用是为了解析报文内容并传递给服务器。0x02http请求如何传递数据本文就从首抓一个http请求开始说起吧。首先要知道什么是http请求和响应。,简单点说就是一个基于tcp的uri,无连接、传输速度快;而响应的格式是二进制,比如:form-data,这里作者以中文显示:最后作者的一篇教程这是我们知道,请求报文发送给对应服务器之后,服务器会处理请求报文并将响应报文传输给对应的客户端,如何将整个报文传输给客户端是另一个问题,这里先不考虑。客户端发起请求后,会首先检查请求报文,如果报文里有*.html或*.txt,则认为请求已响应,服务。