如何使用Jsoup从定义的URL中找到时间?

时间:2016-08-23 18:35:33

标签: java jsoup

我正在Java工作并使用Jsoup。我想从下面的网址中找到Time。我试过这些但无法得到它。时间在于span标签,但在id(timestamp--time timeago)我正在尝试使用它,但我不知道问题是什么。

Document doc;
            Elements lin = null;
            String url = "http://www.dawn.com/news/1277133/this-is-how-pakistanis-around-the-country-are-celebrating-independence-day";
            try {
                doc = Jsoup.connect(url).timeout(20*1000).userAgent("Chrome").get();
                lin = doc.getElementsByClass("span.timestamp--time  timeago");
//              System.out.println(lin);
            } catch (IOException e) {
                    e.printStackTrace();
                }
            int i=0;
            for(Element l :lin){
                System.out.println(""+i+ " : " +l.text());
                i++;
            }

2 个答案:

答案 0 :(得分:1)

您的CSS选择器错误。请改用:

lin = doc.select("span.timestamp--time.timeago");

答案 1 :(得分:1)

替换

lin = doc.getElementsByClass("span.timestamp--time  timeago");

lin = doc.select("span.timestamp--time.timeago");

输出:

0 : Aug 14, 2016 04:29pm
1 : Aug 14, 2016 12:39pm
2 : Aug 14, 2016 01:34pm
3 : Aug 14, 2016 01:37pm
4 : Aug 14, 2016 04:19pm
5 : Aug 15, 2016 01:11am
6 : Aug 15, 2016 08:49am
7 : Aug 16, 2016 12:32pm

API getElementsByClass中的措辞只接受一个类名。因此,在这种情况下lin = doc.getElementsByClass("timestamp--time");提供相同的输出,但如果您想要选择多个类而不是select,那么这是更好的选择。