Java使用Xpath实现爬虫功能

看到有人通过Xpath实现爬虫功能,就写了一个Java版本的。
网上的其他教程看着都是用 过时的 方法实现的,我这是用的新方法,不会报错。

爬取了电影天堂 2022必看热片 里面的《电影名称》和对应下载链接。

在这里插入图片描述
下面贴代码:
需要先引入Xpath的jar包

// https://mvnrepository.com/artifact/cn.wanghaomiao/JsoupXpath
    implementation 'cn.wanghaomiao:JsoupXpath:2.2'
package xpath;

import org.jsoup.nodes.Attributes;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.seimicrawler.xpath.JXDocument;
import org.seimicrawler.xpath.JXNode;

import java.util.List;

/**
 * Xpath测试
 *
 * @author zhao.hualuo
 * Create at 2022/6/9
 */
public class XpathTest {

    public static void main(String[] args) {
        String html= "https://www.dytt89.com/";
        // 基于URL创建JXDocument
        JXDocument jxDocument = JXDocument.createByUrl(html);
        // Xpath语句
        String str = "//*[@id=\"header\"]/div/div[3]/div[4]/div[2]/div[2]/ul";
        // 获取节点集合
        List<JXNode> list = jxDocument.selN(str);
        Element element = list.get(0).asElement();
        // 遍历节点
        for (Node childNode : element.childNodes()) {
            if (childNode.childNodes().size() == 0) {
                continue;
            }
            Attributes attributes = childNode.childNodes().get(0).attributes();
            String href = childNode.baseUri() + attributes.get("href").substring(1);
            String title = attributes.get("title");
            System.out.println(href + "\t" + title);
        }
    }
}

下面讲解一下2个核心参数

//这个是要爬取的网站
String html= "https://www.dytt89.com/";

//这个是xpath规则,可以直接在网页获取,下面是获取方法
String str = "//*[@id=\"header\"]/div/div[3]/div[4]/div[2]/div[2]/ul";

在这里插入图片描述

代码其实没啥东西,可以拆成两部分

  1. 我上面讲的2个参数
  2. 拼接自己需要的数据

在这里插入图片描述
代码执行结果如下:
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Jsoup进行XPath查询需要先引入JsoupXpath依赖。在pom.xml文件中添加以下依赖项: ```xml <dependency> <!-- jsoup HTML parser library @ https://jsoup.org/ --> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.15.4</version> </dependency> <dependency> <groupId>cn.wanghaomiao</groupId> <artifactId>JsoupXpath</artifactId> <version>2.5.3</version> </dependency> ``` 然后,可以使用以下代码示例来执行XPath查询: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import us.codecraft.xsoup.JXDocument; import us.codecraft.xsoup.JXNode; public class JsoupXPathExample { public static void main(String\[\] args) throws IOException { Document document = Jsoup.connect("https://www.example.com").get(); JXDocument jxDocument = JXDocument.create(document); List<JXNode> jxNodes = jxDocument.selN("//div\[@class='example'\]"); for (JXNode jxNode : jxNodes) { Element element = jxNode.asElement(); System.out.println(element.text()); } } } ``` 在上面的示例中,我们首先使用Jsoup连接到指定的网页,然后创建一个JXDocument对象。接下来,我们使用`selN`方法执行XPath查询,传入XPath表达式作为参数。最后,我们遍历查询结果,并将每个结果转换为Jsoup的Element对象,然后打印出其文本内容。 #### 引用[.reference_title] - *1* [410、Jsoup的快速查询---使用xpath选择器](https://blog.csdn.net/l0510402015/article/details/104649360)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [JAVA爬虫JsoupXPath](https://blog.csdn.net/huahuaxingjing/article/details/130324268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值