Java使用Jsoup简单解析页面
2017-09-29 16:03
549 查看
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。
jsoup 的主要功能如下:
1. 从一个 URL,文件或字符串中解析 HTML;
2. 使用 DOM 或 CSS 选择器来查找、取出数据;
3. 可操作 HTML 元素、属性、文本;
实战代码:
教程重点推荐:
http://www.cnblogs.com/jycboy/p/jsoupdoc.html
官网:
https://jsoup.org/
jsoup 的主要功能如下:
1. 从一个 URL,文件或字符串中解析 HTML;
2. 使用 DOM 或 CSS 选择器来查找、取出数据;
3. 可操作 HTML 元素、属性、文本;
实战代码:
@Service("htmlParser") public class HtmlParserImpl implements HtmlParser { private static Logger logger = LoggerFactory.getLogger(HtmlParserImpl.class); /** * 解析人行征信报告页面 * @param html * @return */ public List<DetailVo> parse(String html) { if (StringUtils.isBlank(html)){ return null; } Document document = Jsoup.parse(html); Elements loanElements = document.select("table span.h1 strong"); for (Element element : loanElements){ if (element.text().contains("购房贷款")){ ... setLoanDetailVoByElement(element, detailVo, houseLoanDetailVo); }else if (element.text().contains("其他贷款")){ ... setLoanDetailVoByElement(element, detailVo, loanDetailVo); } } return list; } /** * 设值查询记录(包括机构、个人) * @param tableEle * @param agencyDetailVo */ private void setQueryRecordDetailVoByTableElement(Element tableEle, DetailVo agencyDetailVo) { Elements trList = tableEle.select("tr"); if (trList != null && trList.size() > 0){ for (Element trEle : trList){ Elements trChildren = trEle.children(); if (trChildren != null && trChildren.size() == 4){ agencyDetailVo.getList().add(Lists.newArrayList( trChildren.get(0).text(), trChildren.get(1).text(), trChildren.get(2).text(), trChildren.get(3).text())); } } } } /** * 设值贷款部分(包括了信用卡、购房贷款、其他贷款、为他人担保) * @param element * @param detailVo * @param creditCardDetailVo */ private void setLoanDetailVoByElement(Element element, DetailVo detailVo, DetailVo creditCardDetailVo) { Element olNode = element.parent().nextElementSibling(); Elements olNodes = olNode.children(); for (Element ele : olNodes){ if (ele.tagName().indexOf("span") > -1){ detailVo = new DetailVo(); detailVo.setTitle(ele.child(0).text()); }else if (ele.tagName().indexOf("li") > -1){ if (detailVo != null){ detailVo.getList().add(ele.text()); } if (ele.nextElementSibling() == null ||!"li".equals(ele.nextElementSibling().tagName())){ creditCardDetailVo.getList().add(detailVo); } } } } }
教程重点推荐:
http://www.cnblogs.com/jycboy/p/jsoupdoc.html
官网:
https://jsoup.org/
相关文章推荐
- Java使用Jsoup简单解析页面
- Java - 抓取优酷网视频播放页面(使用jsoup解析html,正则表达式处理字符串)
- JAVA使用jsoup技术实现网站URL解析爬取|爬取网站登陆后页面动态数据
- 使用Jsoup解析HTML页面
- 使用Jsoup解析HTML页面
- 使用Jsoup解析HTML页面
- JAVA在线抓取网页中的元素的例子(使用JSoup包进行解析)
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的...
- Android开发系列十:使用Jsoup解析HTML页面
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用
- java-jsoup解析html页面的内容
- crawler4j抓取页面使用jsoup解析html时的解决方法
- 使用jsp生成验证码使用简单在java或jsp页面调用简单
- android使用Jsoup进行html数据解析简单实例浅析
- Android使用Jsoup解析HTML页面
- java通过url获取页面数据 java解析xml 基金净值接口使用方法
- Android开发系列十:使用Jsoup解析HTML页面
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用
- Java中使用Jsoup对Html文档进行解析和操作
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用