public String getFaGuiKuTitles(String type, int page) {
String href = "http://info.qd-n-tax.gov.cn/NewFaGuiKu/"+type+"/";
String baseUrl = href + "index"; int no = 0;
String msg = ""; if(page>0){
baseUrl = baseUrl + "_"+page;
} baseUrl += ".htm"; int totalPage = 0; List<FaGui> list = new ArrayList<FaGui>(); try {
URL url = new URL(baseUrl);
org.jsoup.nodes.Document doc = Jsoup.parse(url, 10000); org.jsoup.nodes.Element table = doc.select("table").get(0);
org.jsoup.nodes.Element tbody = table.select("tbody").get(0);
org.jsoup.select.Elements rows = tbody.select("tr"); int len = rows.size(); for (int i = 0; i < len; i++) {
org.jsoup.select.Elements cols = rows.get(i).select("td"); FaGui fg = new FaGui();
fg.setTitle(cols.get(0).text());
fg.setDate(cols.get(1).text()); if(cols.size()>2){
fg.setFwzh(cols.get(2).text());
} org.jsoup.nodes.Element a = cols.get(0).select("a").get(0);
fg.setHref(a.attr("href").replaceFirst("./", href)); list.add(fg);
} //翻页信息
String pager = doc.getElementsByClass("pager").get(0).html();
int start = pager.indexOf("(")+1;
int end = pager.indexOf(",");
pager = pager.substring(start, end);//截取页面中的总页数 if(pager.matches("\\d+")){
totalPage = Integer.parseInt(pager);
} no = 1;
msg = "SUCCESS"; log.info("获取税收法规库标题内容", "getFaGuiKuTitles");
} catch (MalformedURLException ex) {
Logger.getLogger(LocalServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
msg = "获取税收法规库标题内容:baseUrl"+baseUrl+"不可用,ex:"+ex;
log.error(msg, "getFaGuiKuTitles");
} catch (IOException ex) {
Logger.getLogger(LocalServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
msg = "获取税收法规库标题内容:IO异常,ex:"+ex;
log.error(msg, "getFaGuiKuTitles");
} return ResultUtil.getResult(no, msg, list,totalPage,page);
}

使用jsoup解析html页面内容案例的更多相关文章

  1. Android开发探秘之三:利用jsoup解析HTML页面

    这节主要是讲解jsoup解析HTML页面.由于在android开发过程中,不可避免的涉及到web页面的抓取,解析,展示等等,所以,在这里我主要展示下利用jsoup jar包来抓取cnbeta.com网 ...

  2. jsoup 解析html 页面数据

    我html 页面元素: /html/body/table[2]/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/font/html/body/table[2]/tbody ...

  3. Android中利用jsoup解析html页面

    学习jsoup :jsoup学习网站 Android 中使用: 添加依赖 implementation 'org.jsoup:jsoup:1.10.1' 直接上代码: package com.load ...

  4. XML解析——Jsoup解析器

    一.Jsoup解析器快速入门案例 Docement对象,文本对象,包含着各个Dom树结构 1.引入Jsoup解析器的jar包放在lib文件夹下后,写java代码 其中, 二.Jsoup对象 1.Jso ...

  5. php 获得汇率(解析页面内容获得指定数据)

    首先贴出原文链接:https://jingyan.baidu.com/article/922554465bf115851748f45f.html 方法如下: function getRate($fro ...

  6. jsoup解析页面

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

  7. Java爬虫系列三:使用Jsoup解析HTML

    在上一篇随笔<Java爬虫系列二:使用HttpClient抓取页面HTML>中介绍了怎么使用HttpClient进行爬虫的第一步--抓取页面html,今天接着来看下爬虫的第二步--解析抓取 ...

  8. Android利用Jsoup解析html 开发网站客户端小记。

    这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容.好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体 ...

  9. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...

随机推荐

  1. java在windows下加载dll

    java在类中加载动态链接库文件. 类文件中: static { System.loadLibrary("dll文件"); } dll文件在工程的包路径下.例如:pro/bin/h ...

  2. Java并发编程:Future接口、FutureTask类

    在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果. 如果需要获取执行结果,就 ...

  3. [Protractor] Test Simple Binding With Protractor

    Protractor is built to interact with AngularJS applications. In this lesson, we will take a look at ...

  4. Jquery UI的datepicker插件使用

    原文链接;http://www.ido321.com/375.html Jquery UI是一个非常丰富的Jquery插件,而且UI的各部分插件能够独自分离出来使用.这是其它非常多Jquery插件没有 ...

  5. Qt Sqlite封装类SqliteUtil

    在网上找了很久关于Qt访问Sqlite数据库的封装类,但是没能找到一个很好的访问调用类,自己写了一个出来,在这里分享一下,希望能对大家有所帮助,小弟不才,写代码没多少经验,如果有什么不恰当之处,请批评 ...

  6. Myeclipse+Tomcat安装与配置

    一: Myeclipse安装很简单,没什么可说的,下面说一下怎么把英文版的Myeclipse汉化的问题 1.把汉化包解压,将解压后的“language”文件夹,放入Myeclipse\common文件 ...

  7. mysql source命令导入sql文件效率分析和索引整理

    Query OK, 24918 rows affected (0.90 sec)Records: 24918  Duplicates: 0  Warnings: 0 Query OK, 24923 r ...

  8. GIt/Github常用命令

    1)git init:初始化本地仓库 2)创建文件:touch read.txt 3)当操作本地的文件时,使用常用的命令,如(mv,ls..)就可以操作,当操作暂存区的文件时需要在命令前家git,并且 ...

  9. ArcMap - 使用python更新列中的值

    概述:在外文网上,很多人都问在ArcMap中如何通过SQL修改属性字段的值,我见回答的人都说通过"Field Calculator",貌似不能直接通过SQL语句. 虽然学gis开发 ...

  10. sql - 修改结构

    1,修改表名 语法: sp_rename old_table_name, new_table_name 例如: sp_rename t_review, t_business 2,修改字段: MySQL ...