js抓取网页内容(java项目有时候我们需要别人网页上的数据(组图))

优采云 发布时间: 2021-12-02 18:20

  js抓取网页内容(java项目有时候我们需要别人网页上的数据(组图))

  有时候我们在java项目中需要从别人的网页中获取数据,我们该怎么办?我们可以使用第三方框架包jsou来实现,jsoup的中文文档,具体怎么实现?然后跟着我一步一步

  首先要做的就是准备第三方机架包,下载地址,拿到jar后需要做什么?别着急,让我们慢慢来

  将jsoup.jar复制到项目的WebRoot—>WEB-INF—>lib文件夹

  

  那我们就来介绍一下这款架子包吧!

  项目右键选择构建路径—>配置构建路径—>库—>添加jars—>在刚才放入的目录中找到jsoup

  

  

  

  准备工作已经完成,接下来就是我们的编码部分,加油!

  既然是爬取网页的内容,那么首先肯定是抓到的网站的地址,这里是我的一篇博客。

  

  这是我的文章的截图。比如我想抓取Android片段和知识点,我会不断更新本文。

  //获取整个网站的根节点,即html的开头和结尾,这里get方法和post方法是一样的

  文档文档 = Jsoup.connect(url).get();

  //输出后,我们会看到整个字符串如下

  System.out.println(文件);

  这里只是截图的一部分

  

  我们会看到我们需要抓取的那段文字被包裹在了a标签中,另外一个重要的就是id=cb_post_title_url。看过文档的应该知道,jsoup中有一个getElementById方法,其实和js中获取元素是一样的。是的,这里我们可以使用

  GetElementById方法来获取这个标签,获取之后就可以获取里面的内容了吧?而且正好jsou也给我们提供了这样一个方法text()方法,就是获取label的文本内容,记住是text的形式,而不是html

  如下,我们使用getElementById方法获取我们想要的a标签

  元素 a = document.getElementById("cb_post_title_url");

  这时候我们输出的内容如下

  System.out.println(a.text());

  

  你得到了我们想要的吗?当然,这只是jsoup最简单的爬取。如果需要获取列表形式,jsoup也是可以的。我们都知道 id 是唯一的,不能重复,所以我们通过 id 得到的 只能是一行标签

  但是对于ul-li这样的一般列表,我们可以使用getElementsByTag这个方法通过标签名来获取,然后通过for循环一一抓取。然后我们将附上代码。

  package com.luhan.text;

import java.io.IOException;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

public class Text {

private static final String url = "http://www.cnblogs.com/luhan/p/5953387.html";

public static void main(String[] args) {

try {

//获取整个网站的根节点,也就是html开头部分一直到结束

Document document = Jsoup.connect(url).post();

Element a = document.getElementById("cb_post_title_url");

System.out.println(a.text());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

  jsoup中的方法我就不一一介绍了。不明白的可以去jsoup的中文文档。再说说比较重要的方法。

  Jsoup.connect(url).post(); 获取网页的follow目录

  getElementById 通过 id 获取

  getElementsByClass 通过类获取

  getElementsByTag 按标签名称获取

  text() 获取标签的文字,再次强调是文字

  html() 获取标签中的所有字符串,包括html标签

  attr(attributeKey) 获取属性内部的值,参数为属性名

  注意

  jsoup获取的网页根目录可能与源码不同,需要注意

  至此,jsoup对网页数据的抓取就结束了。这不是很好。欢迎大家指点。我使用java控制台。javaweb和Android的用法是一样的。首先导入框架,然后调用方法。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线