jsoup java_【JAVA】使用JSOUP让JAVA取得网页上的文字

因为之前参加比赛摆摊的经验,有很多人都会问关于我们专题是怎么让JAVA / Android的读到网页上的文字,所以我这个无业游民就来回馈大家了!!

废话不多说,马上来说明到底要怎么使用JSOUP─HTML/ XML解析取得网页上的文字!!

关于JSOUP

它是一个别人写好的JAVA套件,可以解析HTML及XML,至于是为什么能做到,

因为HTML和XML有所谓的标签

如上图,就是这个左右大小于括起来的东西,

它能取得指定的标签,一直到下一个结束为止,所以凡是有标签的网页,JSOUP都能取得标签包夹的资料。

于是乎,我们可以归纳出JSOUP能作的事情有:

取得HTML网页的文字(标签若重覆,则取得方法在后面有范例)

取得XML网页的文字(因为标签不会有重覆的情况,解析标签会达到最佳效果)

资料库的资料(将取得资料库的PHP的网页按右键检视原始码后,会显示成HTML语言,接下来的方法同HTML)

若要取得一些每日天气的情报,可以至中央气象局的RSS,一样使用JSOUP解析网页上的内容

可以使用在JAVA上,当然也能使用在Android上,但需做一些设定,就能将上述四点都应用至Android app

想到待补... ..

JSOUP事前工作

请先至JSOUP官网将JAR载档下来http://jsoup.org/download

将载下来的jar档放到你的要使用的JAVA Project底下

(这一步可以不做,但如果换电脑的话罐会找不到或罐子路径错误)

开启撰写平台

点击Java Build Path,并按下右侧的添加外部JAR选择你刚刚载的jsoup.jar档案的路径

(这一步如果在换电脑写程序时,路径会跑掉,得重新再做一次)

加入后会长下面那个样子,这样就表示可以开始使用JSOUP了

JSOUP简单范例程序及说明

下面将以简单的HTML网页作为范例解说:

今天你好嗎?

这是一个有表的HTML网页,其显示结果为

就...。长这个样子而已

接下来我打算解析这个网页的标题以及表中的第二个值

JAVA代码如下:

import java.net.URL; import org.jsoup.Jsoup; import

org.jsoup.nodes.Document; import org.jsoup.parser.Parser; import

org.jsoup.select.Elements;

public class main {

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

Parsing();

}

public static void Parsing() throws Exception {

URL url = new URL("http://在這邊輸入你要解析的網頁網址");

Document xmlDoc = Jsoup.parse(url, 3000); //使用Jsoup jar 去解析網頁

//(要解析的文件,timeout)

Elements title = xmlDoc.select("title");

//要解析的tag元素為title

Elements happy = xmlDoc.select("td");

//要解析的tag元素為td

System.out.println("Title is "+title.get(0).text()); //得到title tag的內容

System.out.println("you select mood is "+happy.get(1).text()); //得到td tag的內容

//注意: 因為有好多個td 我想要取得的是

樂 是第2個td 所以填get(1)

} }

注解已打在代码上,值得注意的地方是在取得

在上面的关于JSOUP中有提到Android也可以使用这个方式,除了将代码改为Android代码以外,还要在Android Project的AndroidManifest.xml中调整成以下代码:

进行改版本以及开启网路权限

Android的代码我就不提供了(电脑跑Android模拟器很慢+没有Android手持装置),就当作业自己改吧XD另外

就是加入jsoup.jar档时,可以加在Android Project的libs资料夹底下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值