Jsoup解析网页html

解析网页demo:

利用Jsoup获取截图中的数据信息:

html代码片段:

  <!-- 当前基金档案\计算\定投\开户 start -->
<div class="wrapper">
<div class="wrapper_min">
<div class="merchandiseDetail">
<div class="fundDetail-header">
<div class="fundDetail-tit">
<div style="float: left">兴全社会责任混合
<span>(</span>
<span class="ui-num">340007</span></div>)</div>
<div class="fundDetail-tools">
<a class="jijinba" href="http://guba.eastmoney.com/list,of340007.html">基金吧</a>
<!-- 未自选 start -->
<a class="addSel" id="addSel" href="javascript:;" target="_self">加自选</a>
<!-- 未自选 end -->
<a class="addCom" id="addCom" href="javascript:;" target="_self" onclick="common.addCompare()">加对比</a>
<a class="addDownApp" href="http://fundact.eastmoney.com/app/">手机版天天基金下载</a></div>
</div>
<div class="fundDetail-main">
<!-- 档案 start -->
<div class="fundInfoItem">
<!--开放式基金收益率模块-->
<div class="dataOfFund">
<dl class="dataItem01">
<dt>
<p>
<span>
<span class="sp01">净值估算</span></span>
<span id="gz_gztime">(17-12-20 15:00)</span>
<span class="infoTips">
<span class="tipsBubble" style="display: none;">净值估算每个交易日9:30-15:00盘中实时更新(QDII基金为海外交易时段),是按照基金持仓、指数走势和基金过往业绩估算,估算数据并不代表真实净值,仅供参考,请以基金管理人披露净值为准。</span></span>
</p>
</dt>
<dd class="dataNums">
<dl class="floatleft">
<span class="ui-font-large ui-color-green ui-num" id="gz_gsz">3.7576</span></dl>
<dl id="gz_icon" class="gzdown"></dl>
<dl class="floatleft fundZdf">
<span class="ui-font-middle ui-color-green ui-num" id="gz_gszze">0.0594</span>
<span class="ui-font-middle ui-color-green ui-num" id="gz_gszzl">-1.56%</span></dl>
</dd>
<dd>
<span>近1月:</span>
<span class="ui-font-middle ui-color-green ui-num">-4.62%</span></dd>
<dd>
<span>近1年:</span>
<span class="ui-font-middle ui-color-red ui-num">44.20%</span></dd>
</dl>
<span class="dataOfFund-line"></span>
<dl class="dataItem02">
<dt>
<p>
<span class="ui-color-blue">
<span class="sp01">
<a href="http://fund.eastmoney.com/f10/jjjz_340007.html">单位净值</a></span>(</span>2017-12-19)</p>
</dt>
<dd class="dataNums">
<span class="ui-font-large ui-color-red ui-num">3.8170</span>
<span class="ui-font-middle ui-color-red ui-num">1.41%</span></dd>
<dd>
<span>近3月:</span>
<span class="ui-font-middle ui-color-red ui-num">13.47%</span></dd>
<dd>
<span>近3年:</span>
<span class="ui-font-middle ui-color-red ui-num">113.48%</span></dd>
</dl>
<span class="dataOfFund-line"></span>
<dl class="dataItem03">
<dt>
<p>
<span class="ui-color-blue">
<span class="sp01">
<a href="http://fund.eastmoney.com/f10/jjjz_340007.html">累计净值</a></span>
</span>
</p>
</dt>
<dd class="dataNums">
<span class="ui-font-large ui-color-red ui-num">4.0070</span></dd>
<dd>
<span>近6月:</span>
<span class="ui-font-middle ui-color-red ui-num">25.35%</span></dd>
<dd>
<span>成立来:</span>
<span class="ui-font-middle ui-color-red ui-num">332.92%</span></dd>
</dl>
</div>
<div class="infoOfFund">
<div class="infoOfFund-line"></div>
<table>
<tr>
<td>基金类型:
<a href="http://fund.eastmoney.com/HH_jzzzl.html#os_0;isall_0;ft_;pt_3">混合型</a>&nbsp;&nbsp;|&nbsp;&nbsp;中高风险</td>
<td>
<a href="http://fund.eastmoney.com/f10/gmbd_340007.html">基金规模</a>:76.83亿元(2017-09-30)</td>
<td>基金经理:
<a href="http://fund.eastmoney.com/f10/jjjl_340007.html">傅鹏博</a></td>
</tr>
<tr>
<td>
<span class="letterSpace01">成 立 日</span>:2008-04-30</td>
<td>
<span class="letterSpace01">管 理 人</span>:
<a href="http://fund.eastmoney.com/company/80036742.html">兴全基金</a></td>
<td>
<a class="floatleft" href="http://fund.eastmoney.com/f10/jjpj_340007.html">基金评级</a>
<span class="floatleft">:</span>
<div class="jjpj4"></div>
</td>
</tr>
</table>
</div>
</div>
<!-- 档案 end -->

java实现代码:

/**
* Project Name:wlpc
* File Name:XyzqTask.java
* Package Name:com.xyzq.wlpc.task
* Date:2017年12月20日下午1:48:16
* Copyright (c) 2017 All Rights Reserved.
*
*/
import java.io.IOException;;import net.sf.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;/**
* ClassName:XyzqTask
* Function: TODO
* Reason: TODO
* Date: 2017年12月20日 下午1:48:16
* @author lizm
* @since JDK 1.6
*
*/
public class XyzqTask extends BaseTask { private void getHtml(){
String url = "";
url = Pub.getPropertiesValue("wlpc", "wlpc.web.url");
try {
Document doc = Jsoup.connect(url).get();
//class等于fundDetail-tit的div标签
Elements fundDetail_tit = doc.select("div.fundDetail-tit");
for (Element element : fundDetail_tit){
//特殊字符'(',使用 \\( 或 [(]
System.out.println("fundDetail_tit>>>>:"+element.text().split("\\(")[0]);
//获取div下的第一个span的class为ui-num的值
Document elementDoc = Jsoup.parse(element.toString());
Element elm = elementDoc.select("span.ui-num").first();
System.out.println("elm>>>>:"+elm.text());
}
//id等于gz_gztime的span标签
Elements gz_gztime = doc.select("span#gz_gztime");
for (Element element : gz_gztime){
System.out.println("gz_gztime>>>>:"+element.text().replace("(", "").replace(")", ""));
}
//id等于gz_gsz的span标签
Elements gz_gsz = doc.select("span#gz_gsz");
for (Element element : gz_gsz){
System.out.println("gz_gsz>>>>:"+element.text());
}
//id等于gz_gszze的span标签
Elements gz_gszze = doc.select("span#gz_gszze");
for (Element element : gz_gszze){
System.out.println("gz_gszze>>>>:"+element.text());
} //id等于gz_gszzl的span标签
Elements gz_gszzl = doc.select("span#gz_gszzl");
for (Element element : gz_gszzl){
System.out.println("gz_gszzl>>>>:"+element.text());
}
//class等于dataItem02的dl标签
Elements dataItem02 = doc.select("dl.dataItem02");
for (Element element : dataItem02){
Document elementDoc = Jsoup.parse(element.toString());
Element elm1 = elementDoc.getElementsByTag("p").first();
System.out.println("elm>>>>:"+elm1.text().replace("单位净值 (", "").replace(")", ""));
Element elm_dd = elementDoc.select("dd.dataNums").first();
Document doc_dd = Jsoup.parse(elm_dd.toString());
Element elm_dd_span1 = doc_dd.getElementsByTag("span").first();
System.out.println("elm_dd_span1>>>:"+elm_dd_span1.text());
Element elm_dd_span2 = doc_dd.getElementsByTag("span").last();
System.out.println("elm_dd_span2>>>:"+elm_dd_span2.text());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static void main(String[] args) {
XyzqTask client = new XyzqTask();
client.getHtml();
}
}

输出结果:

fundDetail_tit>>>>:兴全社会责任混合
elm>>>>:340007
gz_gztime>>>>:17-12-21 15:00
gz_gsz>>>>:3.8583
gz_gszze>>>>:+0.0933
gz_gszzl>>>>:+2.48%
elm>>>>:2017-12-20
elm_dd_span1>>>:3.7650
elm_dd_span2>>>:-1.36%

Jsoup解析网页html的更多相关文章

  1. [java] jsoup 解析网页获取省市区域信息

    到国家统计局抓取数据, 到该class下解析数据 /** * jsoup解析网页 * @author xwolf * @date 2016-12-13 18:11 * @since V1.0.0 */ ...

  2. Jsoup解析网页源码时常用的Element(s)类

    Jsoup解析网页源码时常用的Element(s)类 一.简介 该类是Node的直接子类,同样实现了可克隆接口.类声明:public class Element extends Node 它表示由一个 ...

  3. jsoup解析网页出现转义符问题

    https://www.oschina.net/question/996055_136438 *************************************** 我要解析这个网页  htt ...

  4. 使用java开源工具httpClient及jsoup抓取解析网页数据

    今天做项目的时候遇到这样一个需求,需要在网页上展示今日黄历信息,数据格式如下 公历时间:2016年04月11日 星期一 农历时间:猴年三月初五 天干地支:丙申年 壬辰月 癸亥日 宜:求子 祈福 开光 ...

  5. jsoup开发网页客户端3

    这个系列好久没更新,最近好忙,老大说未来是Html5的,所以最近一直学习前端以及Html5的一些东西.Android5.0的诞生,让我们眼前一亮,独特的Material风格更是吸引了无数人. 话说不学 ...

  6. jsoup解析页面

    package com.java.jsoup; /** * jsoup解析网页 * @author nidegui * @version 2019年4月29日 下午5:12:02 * */ impor ...

  7. httpclient+jsoup实现网页信息抓取

    需求分析:抓取:http://tools.2345.com/rili.htm中的万年历(阳历.阴历等等). 1.首先为抓取的内容创建一个类.实现封装. package com.wan.domain; ...

  8. 使用Jsoup帮助解析具有html标签的数据和解析网页

    下载Jsoup包后导入 /** * Created by YGW on 2016/4/17. * 显示公告的详细内容 */public class PressFragment extends Frag ...

  9. Jsoup代码示例、解析网页+提取文本

    使用Jsoup解析HTML 那么我们就必须用到HttpClient先获取到html 同样我们引入HttpClient相关jar包 以及commonIO的jar包 我们把httpClient的基本代码写 ...

随机推荐

  1. Python面向对象之成员修饰符

    对于这些类成员有修饰符 之前定义字段country任何对象都可以访问,是公有的 可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用 vim day7-10.py #!/u ...

  2. ibatis sqlmap配置问题 “Check the IBatisNet.DataAccess.DaoSessionHandlers.SqlMapDaoSessionHandler.”

    - The error occurred while configure DaoSessionHandler.- The error occurred in <property name=&qu ...

  3. ubuntu16.04下安装pycharm

    下面开始教程 先在PyCharm官网下载安装包 链接:https://www.jetbrains.com/pycharm/download/#section=linux 选择平台为Linux,可以看到 ...

  4. opencv学习笔记霍夫变换——直线检测

    参考大佬博文:blog.csdn.net/jia20003/article/details/7724530 lps-683.iteye.com/blog/2254368 openCV里有两个函数(比较 ...

  5. 在排序模型方面,点评搜索也经历了业界比较普遍的迭代过程:从早期的线性模型LR,到引入自动二阶交叉特征的FM和FFM,到非线性树模型GBDT和GBDT+LR,到最近全面迁移至大规模深度学习排序模型。

    https://mp.weixin.qq.com/s/wjgoH6-eJQDL1KUQD3aQUQ 大众点评搜索基于知识图谱的深度学习排序实践 原创: 非易 祝升 仲远 美团技术团队 前天    

  6. Copying and Cloning Objects

    PHP Advanced and Object-OrientedProgrammingVisual Quickpro GuideLarry Ullman class someClass { publi ...

  7. React-生命周期的相关介绍

    1.mounting/组件插入相关 (1)componentWillMount  模板插入前 (2)render 模板插入 (3)componentDidMount 模板插入后 2.Updating/ ...

  8. /etc/issue 查看系统版本号

    查看系统版本号 [root@mysql bin]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m

  9. InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法

    InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法 140628  8:10:48 [Note] Plugi ...

  10. 十天精通CSS3(3)

    颜色之RGBA RGB是一种色彩标准,是由红(R).绿(G).蓝(B)的变化以及相互叠加来得到各式各样的颜色.RGBA是在RGB的基础上增加了控制alpha透明度的参数. 语法: color:rgba ...