Java爬虫解析

最近做了好几个爬虫项目,有一定想法,在这里和大家分享一下:
我使用了三种爬虫的解析方式:

  • json解析:一般移动端的数据是以json传递,这时候使用json解析就会特别方便。
  • jsoup解析:jsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。这种方式非常简单,可以快速入手,这也是Java爬虫最常见的方法。
  • 正则表达式解析:正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式解析页面就相对而言就复杂一些。正则表达式通过检索筛选出整个页面中满足条件的字符串。

json解析

在这里插入图片描述
首先将爬取的这个页面转换成json形式:
在这里插入图片描述
然后就可以对json进行操作了,如果是一个json对象,使用JSONObject,如果是一个json数组,使用 JSONArray.
具体可参考:json解析

jsoup解析

Docment doc=Jsoup.connect(url)
	.userAgent("...")//设置爬取页面需要的头部信息
	.post()//也可以是get方式,具体看你爬取的页面
	...;//直接解析出该url的页面,有时候解析出的doc和原页面存在一些差异,以解析的doc为准。

爬取到doc对应整个页面,接下来就是对doc的解析,下面是解析的一些常见方法。
    通过class来解析:getElementsByClass("…");
    通过ID来解析:getElementsById("…");
    通过其他的属性来解析:getElementsByAttribute("…");
    通过标签来解析:getElementsByTag("…");
详细可以参考:jsoup官网

正则表达式解析

有些人使用正则表达式来爬取内容,这种方式可以爬取一些具有特定格式的内容,但很多人可以不太了解正则表达式的使用。下面是正则表达式的一些主要元字符:

Java爬虫解析_第1张图片
Java爬虫解析_第2张图片
Java爬虫解析_第3张图片
Java爬虫解析_第4张图片
使用正则表达式不能不了解 “懒惰模式” 。我们来看下下面两个表达式的区别:

"
[\\s\\S]*
"//最后只能得到一个符合条件的字符串(从第一个
开始到最后一个
结束) "
[\\s\\S]*?
"//可以获得所有满足条件的字符串

看下面一段代码:

在这里插入图片描述
通过懒惰模式得到所有字符串可以通过上面的方式一个个获取。

你可能感兴趣的:(Java爬虫解析)