您的位置:首页 > 编程语言 > Java开发

Java简单爬虫系列(1)---什么是爬虫,爬虫原理,怎么来实现爬虫

2016-05-12 11:50 916 查看
摘要: 很早就想写个小爬虫了,一直拖拖拖,真是应了一句话,人有多大胆就能拖多晚。这几天终于开始搞了搞,现写下一些需要用到的知识,用作自己储备和希望能给同样需要的oser们一点经验。

很早就想写个小爬虫了,一直拖拖拖,真是应了一句话,人有多大胆就能拖多晚。这几天终于开始搞了搞,现写下一些需要用到的知识,用作自己储备和希望能给同样需要的oser们一点经验。

这个系列一共有5篇,分为

Java简单爬虫系列(1)---什么是爬虫,爬虫原理,怎么来实现爬虫

Java简单爬虫系列(2)---HttpClient的使用

Java简单爬虫系列(3)---正则表达式和Java正则API的使用

Java简单爬虫系列(4)--- 正则表达式获取百度LOGO

Jsoup使用获取推荐列表

下面是第一篇的内容,《什么是爬虫,爬虫原理》

你让我给你说什么是爬虫,我也不知道,我知道的是它可以在互联网上根据取得的url,顺着url一个一个的去访问页面(页面资源都访问到了,你就可以干你想干的事情了)

关于原理下面这段话我觉得十分有用

for each 链接 in 当前网页所有的链接
{
if(如果本链接是我们想要的 || 这个链接从未访问过)
{
处理对本链接
把本链接设置为已访问
}
}

想使用爬虫,

首先你要给它一个种子链接URL

在种子链接的页面查找其他的URL,重复1步骤

有链接有页面,然后你可以在页面中查找需要的内容

这其中需要的知识点

http请求器

由于不是用浏览器访问,我们需要在本地的文件中发起请求获取资源,有两种实现方法,第一种Java提供的java.net包中APIs,另一种是选用第三方的工具,我选的是HttpClient这个资源,相对来说第三方工具会比Java本身提供的APIs的功能更加强大和灵活一些。

内容解析器

上面我们通过请求获取了资源,然后就是要去解析了,基本上获取的都是页面,一大串的HTML页面代码,那么我们也可以通过来两种方式来解析资源,一种是正则表达式,一种是第三方的解析器(比如,jsoup,htmlparse等),本系列会先使用正则表达式来解析,最后应该也会有第三方的解析文章。

主要的梗概大概就是这没多,我再来梳理总结一下

取一个种子URL,比如www.oschina.net

通过httpclient请求获取页面资源(获取的页面资源其中肯定包含了其他的URL,可以作为下一个种子循环使用)

通过正则或者jsoup解析出想要的内容(解析出其他的URL链接,同时获取本页面的所有图片,这都是可以的)

使用3获取的下一个种子URL,重复1

如有错误,敬请指出,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息