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

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【JAVA】使用JSOUP让JAVA取得网页上的文字脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

因为之前参加比赛摆摊的经验,有很多人都会问关于我们专题是怎么让JAVA / AndROId的读到网页上的文字,所以我这个无业游民就来回馈大家了!!
废话不多说,马上来说明到底要怎么使用JSOUP─HTML/ xml解析取得网页上的文字!!

关于JSOUP
它是一个别人写好的JAVA套件,可以解析HTMLXML,至于是为什么能做到
因为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> <head> <;meta http-equiv="Content-tyPE" content="text/html;
charset=utf-8"> <tITle>今天你好嗎?</title> </head> <body>

<table>     <tr><td></td><td></td></tr>     <tr><td></td><td></td></tr> </table> </body> </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(&amp;amp;amp;amp;amp;amp;amp;amp;quot;http://在這邊輸入你要解析的網頁網址&amp;amp;amp;amp;amp;amp;amp;quot;);      Document xmlDoc =  Jsoup.parse(url, 3000); //使用Jsoup jar 去解析網頁     //(要解析的文件,timeout)     Elements title = xmlDoc.select(&amp;amp;amp;amp;amp;amp;amp;quot;title&amp;amp;amp;amp;amp;amp;amp;quot;);

//要解析的tag元素為title

    Elements happy = xmlDoc.select(&amp;amp;amp;amp;amp;amp;amp;quot;td&amp;amp;amp;amp;amp;amp;amp;quot;);

//要解析的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 我想要取得的是<td>樂</td> 是第2個td 所以填get(1)  }   }

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

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

<uses-sdk android_minSdkVersion="7" />
<uses-permission android_name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android_name="android.permission.internet"/>
进行改版本以及开启网路权限

Android的代码我就不提供了(电脑跑Android模拟器很慢+没有Android手持装置),就当作业自己改吧XD另外
就是加入jsoup.jar档时,可以加在Android Project的libs资料夹底下。

脚本宝典总结

以上是脚本宝典为你收集整理的【JAVA】使用JSOUP让JAVA取得网页上的文字全部内容,希望文章能够帮你解决【JAVA】使用JSOUP让JAVA取得网页上的文字所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。