抓取网页新闻(一下我是如何使用jsoup实现对网页文档的修改和实现)

优采云 发布时间: 2021-10-18 23:19

  抓取网页新闻(一下我是如何使用jsoup实现对网页文档的修改和实现)

  先介绍一下jsoup,他的中文文档:

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

  具体和详细的​​文档可以浏览jsoup官方文档:

  我主要讲一下我是如何使用jsoup来修改和实现web文档的。先找一个简单的网址:

  

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

  implementation 'org.jsoup:jsoup:1.11.3'

  然后使用方法:

  Document document = Jsoup.connect(nowUri)

.timeout(15000)

.get();

  可以得到一个 Doucument 文档对象,这个收录网页的 HTML 内容,我们可以使用

  document.title()

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

  沃顿:今晚赢球对我们来说并不美好,但赢球毕竟是

  首先我们需要得到他,我们可以使用方法:

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

  h1是元素标签,也就是过滤条件,元素是标签对象,可以使用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()方法在label内容后追加文本内容,效果图:

  

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

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

Element element1 = element2.clone();

element1.text("This is the title&#39;s translator");

element2.append(element1.outerHtml());

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

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

  源码下载

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线