1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android开发使用jsoup实现网页内容抓取和修改网页内容

Android开发使用jsoup实现网页内容抓取和修改网页内容

时间:2019-02-26 21:12:27

相关推荐

Android开发使用jsoup实现网页内容抓取和修改网页内容

首先介绍一下jsoup,他的中文文档:http://www.open-/jsoup/selector-syntax.htm

说明:jsoup是一个用于处理HTML工作的Java库。它提供了一个非常方便的API来提取和数据操作,使用了最好的DOM、CSS和类jquery方法。

具体详细文档可以去浏览jsoup官方文档:/

我呢今天就主要说一下我是如何使用jsoup实现对网页文档的修改和实现的。首先找一个简单的网页地址:/nba/news/2361753.html

我们可以使用浏览器打开这个地址(推荐谷歌浏览器),右键点击,选择检查,可以查看具体的网页布局HTML。下面就是使用jsoup来直接获取该网页的源码HTML。直接通过依赖导入依赖包:

implementation 'org.jsoup:jsoup:1.11.3'

然后使用方法:

Document document = Jsoup.connect(nowUri).timeout(15000).get();

可以获取到一个Doucument文档对象,这个就包含了网页的HTML内容,我们可以使用

document.title()

方法获取到网页的标题,也可以使用tostring或outerHtml获取到网页的源码。假如我们想改变网页文本的标题:

<h1 class="headline">沃顿:今晚我们赢得并不漂亮,但赢球终归是赢球</h1>

首先我们要获取到他,可以使用方法:

Element element = document.selectFirst("h1");

h1是元素标签,也就是筛选条件,element就是标签对象,可以使用toString()打印标签,可以使用text()方法获取到此标签包含的文本。接下来修改网页标题,使用方法:

element.text("这是我修改过的标题,哈哈哈……");

这样就能够实现了。我们可以通过webview加载我们修改过的HTML:

mWebView.loadDataWithBaseURL(URL_HTML, document.outerHtml(), "text/html", "utf-8", null);

URL_HTML为网页的原始地址,document.outerHtml()就是我们获取到的HTML。效果图:

接下来就是修改文章内容部分,同样先筛选出文章内容

Elements elements = document.select("p");for (int i = 0; i < 4; i++) {//打印文章的内容//elements.text();elements.get(i).appendText("《这段内容结束》");mWebView.loadDataWithBaseURL(URL_HTML, document.outerHtml(), "text/html", "utf-8", null);}

因为这里是有四段内容,所以先筛选出标签为“p”的集合,然后修改前四个就行了,这里使用到了appendText()方法作用就是在标签内容后面追加文本内容,效果图:

我们还可插入一个新的英文标题:

Element element2 = document.selectFirst("h1");Element element1 = element2.clone();element1.text("This is the title's translator");element2.append(element1.outerHtml());mWebView.loadDataWithBaseURL(URL_HTML, document.outerHtml(), "text/html", "utf-8", null);

OK,更多方法,更多实现可以参考jsoup中给出的各种方法比如选择器加正则表达式实现特殊筛选等功能。

源码下载

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。