使用jsoup分析网页

本文介绍了如何使用jsoup库轻松解析网页数据,并提供了实际示例,包括使用ID、类名和选择器来获取元素。同时,文章还详细解释了选择器的语法和提供了在线文档链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=large]之前用过HTMLParser,许久不更新的东西了,印象中也没那么好用。
今天重新搜索了一下,发现jsoup很容易上手~选择器很好很强大。
[color=red]支持DOM和选择器两种模式[/color][/size]

[size=x-large][color=blue]1、下载[/color][/size]
[size=large]jsoup的网站很简洁:[/size][url]http://jsoup.org/[/url]
[size=large]入门做的很不错:[/size][url]http://jsoup.org/cookbook/[/url]

[size=x-large][color=blue]2、简单的例子[/color][/size]
[size=large]以下示例用于抓取iteye首页的新闻及连接,共使用了3种方式获取元素:[/size]
[table]
|选择器|
|用组件的Id|
|用组件的class|
[/table]
package tests;

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class EgParseItEyeNews {
public static void main(String[] args) throws IOException {
String url = "http://www.iteye.com/";
// 不加userAgent会被视为爬虫。。。。。
Document doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1 ")
.get();

// Element news = doc.getElementById("news"); //1、通过ID
Elements newsConents=doc.getElementsByClass("news_content");//2、通过class
Element news=newsConents.first();
if (news == null)
System.out.println(doc);
else {
// System.out.println(news);
// System.out.println("end of news****************\n");
Elements elems = news.select("a"); // 3、通过选择器 , 把链接都提取出来
for (Element element : elems) {
System.out.println(element.text() + " \t链接为:" + element.attr("href"));
}
}

}
}


[size=large]输出如下:[/size]
[list]
[*]轻量级JavaWeb开发框架EWeb4J作者赖伟威专访 链接为:http://www.iteye.com/magazines/105
[*][详情] 链接为:http://www.iteye.com/magazines/105
[*]12月TIOBE编程语言排行榜:年度语言非ObjC莫属 链接为:http://www.iteye.com/news/26673
[*][详情] 链接为:http://www.iteye.com/news/26673
[*]JDK6明年2月停止更新,甲骨文呼吁尽快升级至7 链接为:http://www.iteye.com/news/26683
[*][详情] 链接为:http://www.iteye.com/news/26683
[/list]

[size=large]。。。好多重复的链接啊!!![color=red]将选择器重的代码改为:[/color][/size]
Elements elems = news.select("dt>a"); // 3、通过选择器  ,     把链接都提取出来

[size=large]使得只选择的链接为dt标签的直接子类即可去掉[color=red][详情][/color]项,更多选项如后文所示。[/size]


[size=x-large][color=blue]3、选择器字符串的语法[/color][/size]
[size=large]这里有实例介绍:[/size][url]http://jsoup.org/cookbook/extracting-data/selector-syntax[/url]
[size=large]用法详解:[/size][url]http://jsoup.org/apidocs/org/jsoup/select/Selector.html[/url]
[size=large]下图是从上面的网址抠出来的:[/size]
[img]http://dl.iteye.com/upload/attachment/0077/4769/3569edae-3c71-3eb9-ad58-7485e82bb117.png[/img]

[size=x-large][color=blue]4、在线文档[/color][/size]
[url]http://jsoup.org/apidocs/[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值