首页 > 解决方案 > 如何使用 JSoup 抓取这个特定元素?

问题描述

我正在尝试在此网站上抓取有关用户的基本信息。我要做的就是获取用户的姓名和他们各自的声誉。以下是页面来源的副本:

    /**Update information about latest job in String array LatestJobInfo.*/
    public void getLatestInfo() {
        Document latest_job = getJob(getLatestID());
        try {

            //Find client
            Elements clientname_fetch = latest_job.select("div.item-listing__username.mt-0.mb-0");
            System.out.println(clientname_fetch);


        } catch (Exception e) {
            e.printStackTrace();
        }

    }

https://pastebin.com/dtxvHBEh

我正在尝试从第 288 行和第 292 行中抓取信息。我尝试了以下内容,但实际上一无所获。我想我需要首先通过他们的父母访问这些元素,但我在这样做时遇到了麻烦。如果有人能给我一个关于抓取这些深层元素的语法的快速指南,那将是完美的。

这是我尝试过的: Elements clientname_fetch = latest_job.select("div.item-listing__username.mt-0.mb-0"); 元素 clientname_fetch = latest_job.select("h5");

标签: javahtmljsoup

解决方案


第一个选择器应该是.item-listing__username,第二个是.item-listing__avatar__rep
为了得到它们,我打开了浏览器的开发工具(F12),选择了检查器工具(用#1圈起来),将光标移动到目标元素并单击它(#2,此时我无法选择确切的元素,但这不是问题)。浏览器突出显示包含该元素(#3)的行,然后我从那里向下导航,直到找到用户名和分数 -> 右键单击​​ -> 复制 css 选择器,就是这样。
在此处输入图像描述


推荐阅读