java抓取网页内容(java项目有时候咱们须要别人网页上的数据(图))

优采云 发布时间: 2022-03-25 00:13

  java抓取网页内容(java项目有时候咱们须要别人网页上的数据(图))

  Java项目 有时候我们需要别人网页上的数据,我们应该怎么做?我们可以使用第三方架子包jsou来实现,jsoup的中文文档,具体怎么实现呢?那就跟着我一步一步html

  最早决定是准备这个第三方架子包,下载地址,拿到这个jar后怎么办?别着急,让我们慢慢来java

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

  

  我们以后需要介绍这个架子包!网络

  项目右键选择构建路径—>configurebuild path—>libraries—>add jars—>在刚才放入的目录下找到jsoup框架

  

  

  

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

  既然是抓取网页的内容,那肯定有最先被抓到的网站的地址。这是我的博客之一。网站

  

  这是我的文章截图,比如我想抓取一些Android知识点,以后会更新。这段文字ui

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

  Document 文档 = Jsoup.connect(url).get();编码

  //输出我们会在下面看到整个字符串

  System.out.println(文档);url

  这只是截图的一部分

  

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

  getElementById的方法来获取这个a标签,拿到之后就可以拿到里面的内容了吧?而且恰好jsou也给我们提供了这样一个方法,text()方法,就是获取标签的文本内容,记住是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();获取网页的目录

  getElementById通过id获取

  getElementsByClass通过类获取

  getElementsByTag 通过标签名获取

  text() 获取标签的文本,再次是文本

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

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

  注意

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线