首页 > 代码库 > java简单网页抓取
java简单网页抓取
背景介绍
一 tcp简介
1 tcp 实现网络中点对点的传输
2 传输是通过ports和sockets
ports提供了不同类型的传输(例如 http的port是80)
1)sockets可以绑定在特定端口上,并且提供传输功能
2)一个port可以连接多个socket
二 URL简介
URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
综上,我们要抓取网页的内容实质上就是通过url来抓取网页内容。
Java提供了两种方法:
一种是直接从URL读取网页
一种是通过 URLConnection来读取网页
其中的分别是URLConnection是以http为核心的类,提供了很多关于连接http的函数
本文将给出基于URLConnection的实例代码。
在此之前我们先来看下关于url的异常。不了解java异常机制的请参看上一篇博文。
构造URL的异常MalformedURLException:url的字符串为空或者是不能辨认的协议
建立 URLConnection的异常 IOException: openConnection失败,注意openConnection时 代码还未连接远程,只是为连接远程做准备
综上 最终代码
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class SimpleNetSpider { public static void main(String[] args) { try{ URL u = new URL("http://docs.oracle.com/javase/tutorial/networking/urls/"); URLConnection connection = u.openConnection(); HttpURLConnection htCon = (HttpURLConnection) connection; int code = htCon.getResponseCode(); if (code == HttpURLConnection.HTTP_OK) { System.out.println("find the website"); BufferedReader in=new BufferedReader(new InputStreamReader(htCon.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } else { System.out.println("Can not access the website"); } } catch(MalformedURLException e ) { System.out.println("Wrong URL"); } catch(IOException e) { System.out.println("Can not connect"); } }}
参考文献:
http://docs.oracle.com/javase/tutorial/networking/urls/index.html
java简单网页抓取
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。