本篇文章给大家谈谈jsoup,以及jsoup的parse反复用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

使用jsoup抓取分页的问题

这几天正在研究。废话不多说,直接上代码,自己研究的,通过迭代抓取。pageList就是抓取的分页页面的全部链接地址。

jsoup jsoup的parse反复用

其中Document doc= NetUtils.getDocument(url);是jsoup抓取页面的基本操作。

public class HtmlAnalsysTest3{

static String url="";

public static void main(String[] args){

analsysPage(url);

jsoup jsoup的parse反复用

for(String hurl: pageList){

System.out.println(" hurl-->"+hurl);

}

}

//已经抓取的用来迭代过滤

static List<String> hisurl= new ArrayList<String>();

//所需要分页链接集合

static List<String> pageList= new ArrayList<String>();

private static void analsysPage(String url){

if(hisurl.contains(url)){

System.out.println("hisurl:"+hisurl.size());

return;

}

Document doc= NetUtils.getDocument(url);

if(doc==null){

System.out.println("doc is null"+url);

return;

}

hisurl.add(url);

String tag="body a";

String attr="abs:href";

String herfcontent="mt/huge";//只筛选胡歌的连接

Elements elemens= doc.select(tag);

for(Element e: elemens){

String href= e.attr(attr);

if(!href.contains(herfcontent)){

continue;

}

//System.out.println("页面page:"+ href);

if(!pageList.contains(href)){

pageList.add(href);

}

analsysPage(href);//迭代抓取,迭代过程会自动找后后续的页面

}

}

}

最终结果输出:

hurl-->

hurl-->

hurl-->

hurl-->

hurl-->

hurl-->

用jsoup解析获取一段网页内容的问题

这段html实际上是不符合规范的。在用jsoup解析时会出现问题。

我想到一个办法解决这个问题。

首先我想你应该是想得到标题、馆藏复本的数目、可借复本的数目、朱印宏编著和长江出版社。

所以我们先把上面html里面的文字全部得到即:

java开发解析馆藏复本:3可借复本:0朱印宏编著长江出版社

然后我想在这段文字中“馆藏复本:”、“可借复本:”、“编著”这几个字应该是固定不变的。所以我们可以用正则表达式去对它进行解析,得到你想要的文字。

代码如下:

publicclassTest{

publicstaticvoidmain(String[]args){

Stringhtml="<divclass=\"list_books\"id=\"list_books\"><td>java开发解析</td><p><span><strong>馆藏复本:</strong>3<br/><strong>可借复本:</strong>0</span>朱印宏编著<br/>长江出版社</p></div>";

Documentdoc=Jsoup.parse(html);

Stringe=doc.select("#list_books").text().replaceAll("[\\s]+","");

//System.out.println(e);

Patternp=Pattern.compile("^(.*)馆藏复本:([\\d]+)可借复本:([\\d]+)(.*)编著(.*)$");

Matcherm=p.matcher(e);

if(m.find()){

for(inti=1;i<=m.groupCount();i++){

System.out.println(m.group(i));

}

}

}

}

如果如下:

java开发解析

3

0

朱印宏

长江出版社

jsoup和jquery的区别是什么

jsoup是一款 Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。该版本包含一个支持 HTML5的解析器分支,可确保跟现在的浏览器一样解析 HTML的方法,同时降低了解析的时间和内存的占用。

Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

希望能帮到你~