【问题标题】:How to extract the text from the web site?如何从网站中提取文本?
【发布时间】:2021-11-29 16:45:21
【问题描述】:

我正在编写解析天气站点的代码。

我在网站上找到了一个包含所需数据的 CSS 类。如何以字符串的形式从那里接“10 月 12 日”? (10 月 12 日,星期二)

public class Pars {
    private static Document getPage() throws IOException {
        String url = "https://www.gismeteo.by/weather-mogilev-4251/3-day/";
        Document page = Jsoup.parse(new URL(url), 3000);
        return page;
    }

    public static void main(String[] args) throws IOException {
        Document page = getPage();
        Element Nameday = page.select("div [class=date date-2]").first();
        String date = Nameday.select("div [class=date date-2").text();
        System.out.println(Nameday);
    }
}

代码是为了解析天气站点而编写的。在页面上,我找到了正确的课程,其中只有我需要的日期和星期几。但是在从一个类转换数据的阶段,一个错误会崩溃成一个字符串。

【问题讨论】:

    标签: java html parsing


    【解决方案1】:

    问题在于类选择器,它应该是这样的:div.date.date-2

    工作代码示例:

    public class Pars {
    
        private static Document getPage() throws IOException {
            String url = "https://www.gismeteo.by/weather-mogilev-4251/3-day/";
            return Jsoup.parse(new URL(url), 3000);
        }
    
        public static void main(String[] args) throws IOException {
            Document page = getPage();
            Element dateDiv = page.select("div.date.date-2").first();
            if(dateDiv != null) {
                String date = dateDiv.text();
                System.out.println(date);
            }
        }
    
    }
    

    这里是您问题的答案:Jsoup select div having multiple classes

    今后,请确保您的问题更加详细且结构合理。以下是“提问”指南:https://stackoverflow.com/help/how-to-ask

    【讨论】:

    • 非常感谢,添加条件后,一切正常。但是该类保持不变(“div [class=date date-2]”),根据您的版本(“div.date.date-2”),结果始终返回 null
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2020-10-31
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多