网络爬虫之基础
2015-06-15 09:28
375 查看
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。
随着互联网的高速发展,以及移动互联网的高速普及,越来越多的程序员开始接触网络爬虫,那么网络爬虫的都有哪些应用呢?随着腾讯微信公众平台的推出,越来越多的程序员进入到了微信时代,相信在一些学校的官方微信平台上都有这样的模块:查询成绩、查询课表、查询图书借阅历史等等,这些功能的实现就是通过网络爬虫的基本原理在现实世界中的一种实现。本篇我将带领大家简单学习一下这部分的知识,供新手学习,大牛指点。
初次接触这部分知识,说来还挺那个啥,为了取得一个女孩的芳心,花费一个星期的时间为她专属打造了一款:LAHnust的Android应用,在这个应用中为了实现一个掌上校园的模块,我走进了这个圈圈,最终通过各种百度、大牛指点,最终我实现了这个功能模块,虽然最终难逃被抛弃的命运,不过通过这个应用的设计,我基本掌握了网络爬虫的基础知识,本篇我将带领大家简单学习一下这部分的知识,希望对你能起到一定的帮助作用。
对于网络爬虫的介绍,百度上多的是,这里我就不再赘述,我们的今天的学习借助httpclient相关的JAR包大家可以到网上下载一下,我们使用的开发工具是Myeclipse10,下面我们开始今天这部分知识的实现。毕竟初次接触,我们就从最基本的抓取网页信息开始。
先看源码:
结果:
这是最简单的一种网络爬虫抓取信息的方式,为我们开发应用可以提供的丰富的资源,源码做了很详细的注释,相信大家都能看的明白。初次接触,如有什么不当的地方,还望指点。
随着互联网的高速发展,以及移动互联网的高速普及,越来越多的程序员开始接触网络爬虫,那么网络爬虫的都有哪些应用呢?随着腾讯微信公众平台的推出,越来越多的程序员进入到了微信时代,相信在一些学校的官方微信平台上都有这样的模块:查询成绩、查询课表、查询图书借阅历史等等,这些功能的实现就是通过网络爬虫的基本原理在现实世界中的一种实现。本篇我将带领大家简单学习一下这部分的知识,供新手学习,大牛指点。
初次接触这部分知识,说来还挺那个啥,为了取得一个女孩的芳心,花费一个星期的时间为她专属打造了一款: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());// 文字内容过滤 } }
结果:
这是最简单的一种网络爬虫抓取信息的方式,为我们开发应用可以提供的丰富的资源,源码做了很详细的注释,相信大家都能看的明白。初次接触,如有什么不当的地方,还望指点。
相关文章推荐
- #为什么TCP/IP需要三次握手#
- MapServer 之 发布网络地图服务(WMS-Web Map Service)
- 基于tcpdump的Android智能移动终端数据包捕获完整解决方案
- TCP
- Tornado源码分析之http服务器篇
- 维基百科将默认开启HTTPS以强化安全
- StarWind 模仿 iSCSI 进行网络存储管理
- CentOS网络问题汇总
- Java基础班学习笔记(16)网络编程
- nginx平台初识(二) 浏览器 HTTP 协议缓存机制详解
- nginx平台初识(二) 浏览器 HTTP 协议缓存机制详解
- netstat用法及TCP state解析
- TCP连接出现大量TIME_WAIT的解决办法
- 一起学习CC3200系列教程之TCP ECHO 服务端 selcet
- 菜鸟网络业务支撑平台
- listview+BaseAdapter + AsyncTask异步请求网络 + LruCache缓存图片
- android http通信
- Allegro里隐藏GND或者电源网络的鼠线/ 显示隐藏的鼠线,修改网络颜色
- 【转】HTTP协议详解
- 大学课程--计算机网络