所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地
。类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器
端,然后读取服务器端的响应资源。
Java语言是为网络而生的编程语言,它把网络资源看成是一种文件,它对网络资源的访问
和对本地文件的访问一样方便。它把请求和响应封装为流。因此我们可以根据相应内容,
获得响应流,之后从流中按字节读取数据。例如,java.net.URL类可以对相应的Web服务器发
出请求并且获得响应文档。java.net.URL类有一个默认的构造函数,使用URL地址参数,构造
URL对象:
URL pageURL = new URL(path);
接着,可以通过获得的URL对象来获取网络流,进而像操作本地文件一样来操作网络资源:
InputStream stream = pageURL.openStream();
在实际的项目中,网络环境比较复杂。为了 便于应用程序的开发,实际开发时常常使用Apache
的HTTP客户端开源项目--HttpClient。它完全能够处理HTTP连接中的各种问题,使用起来非常方便
,只需在项目中引入HttpClient.jar包,就可以模拟IE来获取网页内容:例如(使用get方式访问web资源)
//创建一个客户端,类似于打开一个浏览器
。类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器
端,然后读取服务器端的响应资源。
Java语言是为网络而生的编程语言,它把网络资源看成是一种文件,它对网络资源的访问
和对本地文件的访问一样方便。它把请求和响应封装为流。因此我们可以根据相应内容,
获得响应流,之后从流中按字节读取数据。例如,java.net.URL类可以对相应的Web服务器发
出请求并且获得响应文档。java.net.URL类有一个默认的构造函数,使用URL地址参数,构造
URL对象:
URL pageURL = new URL(path);
接着,可以通过获得的URL对象来获取网络流,进而像操作本地文件一样来操作网络资源:
InputStream stream = pageURL.openStream();
在实际的项目中,网络环境比较复杂。为了 便于应用程序的开发,实际开发时常常使用Apache
的HTTP客户端开源项目--HttpClient。它完全能够处理HTTP连接中的各种问题,使用起来非常方便
,只需在项目中引入HttpClient.jar包,就可以模拟IE来获取网页内容:例如(使用get方式访问web资源)
//创建一个客户端,类似于打开一个浏览器