当前位置: 首页 > news >正文

众网站厦门模板建站

众网站,厦门模板建站,深圳建设集团待遇,静态网站跟动态的区别Java XPath 使用(2023/08/29) 文章目录 Java XPath 使用(2023/08/29)1. 前言2. 技术选型3. 技术实现 1. 前言 众所周知,Java 语言适合应用于 Web 开发领域,不擅长用来编写爬虫。但在 Web 开发过程中有时又…

Java XPath 使用(2023/08/29)

文章目录

  • Java XPath 使用(2023/08/29)
    • 1. 前言
    • 2. 技术选型
    • 3. 技术实现

1. 前言

众所周知,Java 语言适合应用于 Web 开发领域,不擅长用来编写爬虫。但在 Web 开发过程中有时又存在爬取数据的需求,此时采用其它语言编写独立爬虫模块的话存在维护不方便的问题,所以此处笔者选择了使用 Java + XPath 实现简单的爬虫功能,如果爬虫需求较多且复杂还是推荐采用其它语言实现独立的爬虫模块。

2. 技术选型

  1. JsoupXpath
    • 优点:使用简单;
    • 缺点:对 XPath 语法的支持有限;
  2. xsoup
    • 优点:使用简单;
    • 缺点:对 XPath 语法的支持有限;
  3. HtmlCleaner
    • 优点:使用简单;
    • 缺点:对 XPath 语法的支持有限;
  4. Java XPath
    • 优点:对 XPath 语法支持全面;
    • 缺点:对 xml 格式要求严格,几乎没有 Html 可以通过解析;
  5. HtmlCleaner + Java XPath
    • 优点:对 XPath 语法支持全面;
    • 缺点:使用相对复杂;

3. 技术实现

以 http://www.jnswj.net/jsp/sw/jnsw-skhdsq.jsp 网站和 //*[@id="MainTable"]/tbody/tr[position()>=5 and position()<=22]/td[position()=1 or (position()>=9 and position()<=13)] XPath 表达式为例,笔者测试了上述 5 种技术方案,其中只有第 5 种方案通过了测试,其它几种均出现了报错,故此处仅介绍第 5 种方案的实现。

  1. Maven 引入依赖;

    <!-- 获取 HTML 页面内容 -->
    <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-http -->
    <dependency><groupId>cn.hutool</groupId><artifactId>hutool-http</artifactId><version>5.8.21</version>
    </dependency><!-- 解析 HTML -->
    <!-- https://mvnrepository.com/artifact/net.sourceforge.htmlcleaner/htmlcleaner -->
    <dependency><groupId>net.sourceforge.htmlcleaner</groupId><artifactId>htmlcleaner</artifactId><version>2.29</version>
    </dependency>
    
  2. 获取页面内容,并解析获取结果;

    import cn.hutool.http.HttpUtil;
    import org.htmlcleaner.CleanerProperties;
    import org.htmlcleaner.DomSerializer;
    import org.htmlcleaner.HtmlCleaner;
    import org.htmlcleaner.TagNode;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.xpath.XPath;
    import javax.xml.xpath.XPathConstants;
    import javax.xml.xpath.XPathExpressionException;
    import javax.xml.xpath.XPathFactory;/*** 测试 HtmlCleaner + Java XPath.** @author <a href="mailto:xiaoQQya@126.com">xiaoQQya</a>* @since 2023/08/29*/
    private void test throws ParserConfigurationException, XPathExpressionException {// 获取 HTML 页面内容String url = "http://www.jnswj.net/jsp/sw/jnsw-skhdsq.jsp";String html = HttpUtil.get(url);// 解析 HTML 页面内容HtmlCleaner hc = new HtmlCleaner();TagNode tn = hc.clean(html);Document document = new DomSerializer(new CleanerProperties()).createDOM(tn);// 匹配获取需要的数据XPath xPath = XPathFactory.newInstance().newXPath();String exp = "//*[@id=\"MainTable\"]/tbody/tr[position()>=5 and position()<=22]/td[position()=1 or (position()>=9 and position()<=13)]";NodeList nodes = (NodeList) xPath.evaluate(exp, document, XPathConstants.NODESET);for (int length = nodes.getLength(), i = 0; i < length; i++) {Node item = nodes.item(i);System.out.println(item.getTextContent());}
    }
    

参考文章:

  • Java - XPath解析爬取内容 - Jinkora - 博客园 (cnblogs.com);
  • Intro to XPath with Java | Baeldung;
  • zhegexiaohuozi/JsoupXpath: 纯Java实现的支持W3C Xpath 1.0标准语法的HTML解析器。A html parser with xpath base on Jsoup and Antlr4. Maybe it is the best in java.Just try it. (github.com);
  • code4craft/xsoup: When jsoup meets XPath. (github.com);
http://www.yayakq.cn/news/662343/

相关文章:

  • 做网站ui主要研究内容印刷网站 源码
  • 做网站要几个人 要多少钱免费推广
  • 广州网站建设智能 乐云践新html5制作软件
  • 华能集团网站建设方案项目分析开发公司工程结算审核工作流程及工作要点
  • 免费的网站推广在线推广网站被黑解决方案
  • 石家庄哪里可以做网站wordpress 去掉评论框
  • 小学学校网站建设计划书o2o网站建设最好公司排名
  • 为什么不建议学平面设计惠州百度seo哪里强
  • 无锡外贸网站制作公司WordPress 主从同步
  • 更改网站伪静态wordpress调用taxonomy
  • 信息流广告怎么投放seo的工作原理
  • 苏州市市政建设管理处网站莱芜论坛莱芜在线
  • 济南传承网站建设李聪需要哪些技术
  • 免费北京网站建设wordpress如何生成html代码
  • 赣州网站建设渠道一流学科建设专题网站
  • 无锡知名网站制作爱原物设计网
  • 帝国cms官方网站搭建wordpress写不进去
  • 网站是先备案还是先做网站关键词怎么写
  • 长春网站快速优化排名北京做手机网站的公司名称
  • 万网怎么做网站论坛网站文本抓取怎么做
  • 十堰市有几家网站公司网站建设忘记密码邮箱设置
  • 单页网站怎么赚钱环球军事新闻最新消息
  • 门户网站建设情况说明短视频获客
  • 网站挂马检测流程图修改wordpress的样式
  • 建设银行官网站预约wordpress首页不要全文
  • 网站手机端首页用什么软件做手机网站开发c
  • 网站编程论文网站页面怎么做识别二维码
  • 南京 郑州网站建设公司 网络服务成都设计院有哪些
  • 给人做网站赚钱吗制作简单的网页代码
  • 微网站开发策划个人网站可以做产品宣传吗