你的位置:首页 > Java教程

[Java教程]网络爬虫之基础


  网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。

  随着互联网的高速发展,以及移动互联网的高速普及,越来越多的程序员开始接触网络爬虫,那么网络爬虫的都有哪些应用呢?随着腾讯微信公众平台的推出,越来越多的程序员进入到了微信时代,相信在一些学校的官方微信平台上都有这样的模块:查询成绩、查询课表、查询图书借阅历史等等,这些功能的实现就是通过网络爬虫的基本原理在现实世界中的一种实现。本篇我将带领大家简单学习一下这部分的知识,供新手学习,大牛指点。

  初次接触这部分知识,说来还挺那个啥,为了取得一个女孩的芳心,花费一个星期的时间为她专属打造了一款:LAHnust的Android应用,在这个应用中为了实现一个掌上校园的模块,我走进了这个圈圈,最终通过各种百度、大牛指点,最终我实现了这个功能模块,虽然最终难逃被抛弃的命运,不过通过这个应用的设计,我基本掌握了网络爬虫的基础知识,本篇我将带领大家简单学习一下这部分的知识,希望对你能起到一定的帮助作用。

  对于网络爬虫的介绍,百度上多的是,这里我就不再赘述,我们的今天的学习借助httpclient相关的JAR包大家可以到网上下载一下,我们使用的开发工具是Myeclipse10,下面我们开始今天这部分知识的实现。毕竟初次接触,我们就从最基本的抓取网页信息开始。

  先看源码:

/** * 抓取网页,如:高校主页 * @author 小破孩 */public class Main {  public static void main(String[] args) throws Exception {    //学校简介    Document doc = Jsoup.connect(        "http://www.hnust.edu.cn/xxgk/xxjj/index.htm").get();// 获得Html文档    Elements elements = doc.select("div[class=MsoNormal]");// html文档内容的解析    System.out.println(elements.get(1).after("span").text());// 文字内容过滤    System.out.println(elements.get(2).after("span").text());// 文字内容过滤    elements = doc.select("div[class=pre]");// html文档内容的解析    System.out.println(elements.get(0).after("span").text());// 文字内容过滤    System.out.println(elements.get(1).after("span").text());// 文字内容过滤    System.out.println(elements.get(2).after("span").text());// 文字内容过滤    System.out.println(elements.get(3).after("span").text());// 文字内容过滤    elements = doc.select("div[class=MsoNormal]");// html文档内容的解析    for(int i = 3; i<elements.size(); i++){      System.out.println(elements.get(i).after("span").text().trim());// 文字内容过滤    }    System.out.println("");    //校徽释意    doc = Jsoup.connect("http://www.hnust.edu.cn/xxgk/xxbs/xh/index.htm")        .get();// 获得Html文档    elements = doc.select("div[class=right]");// html文档内容的解析    System.out.println(elements.get(0).after("span").text());// 文字内容过滤        System.out.println("");        //校训释意    doc = Jsoup.connect("http://www.hnust.edu.cn/xxgk/xxbs/xx/index.htm")        .get();// 获得Html文档    elements = doc.select("div[class=MsoNormal]");// html文档内容的解析    System.out.println(elements.get(0).after("span").text());// 文字内容过滤    System.out.println(elements.get(1).after("span").text());// 文字内容过滤    System.out.println(elements.get(2).after("span").text());// 文字内容过滤      }}

  结果:

  这是最简单的一种网络爬虫抓取信息的方式,为我们开发应用可以提供的丰富的资源,源码做了很详细的注释,相信大家都能看的明白。初次接触,如有什么不当的地方,还望指点。