如何从Jsoup的网站上获取最后5篇文章

问题描述 投票:1回答:1

我目前正在为一家公司的Java桌面应用程序工作,他们问我,从网页中提取最后5篇文章并在应用程序中显示它们。要做到这一点,我当然需要一个HTML解析器,我直接想到了JSoup。但我的问题是我该怎么做呢?我从这个问题中找到了一个简单的例子:Example: How to “scan” a website (or page) for info, and bring it into my program?

使用此代码:

package com.stackoverflow.q2835505;

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Test {

    public static void main(String[] args) throws Exception {
        String url = "https://stackoverflow.com/questions/2835505";
        Document document = Jsoup.connect(url).get();

        String question = document.select("#question .post-text").text();
        System.out.println("Question: " + question);

        Elements answerers = document.select("#answers .user-details a");
        for (Element answerer : answerers) {
            System.out.println("Answerer: " + answerer.text());
        }
    }

}

这段代码是由BalusC编写的,我理解它,但是当链接没有修复时我该怎么办呢,例如大多数报纸就是这种情况。为了简单起见,我将如何从这个新闻页面中提取最后的5篇文章:News?我无法使用RSS提要,因为我的老板希望显示完整的文章。

java html web-scraping jsoup
1个回答
0
投票

首先,您需要下载主页面:

    Document doc = Jsoup.connect("https://globalnews.ca/world/").get();

然后你选择你感兴趣的链接,例如css selectors你选择所有包含a和文本hrefglobalnews标签,并嵌套在h3标签中,类为story-h。网址是href标签的a属性。

    for(Element e: doc.select("h3.story-h > a[href*=globalnews]")) {
        System.out.println(e.attr("href"));
    }

然后,您可以根据需要处理生成的URL。您可以使用第一行中的语法等下载前五个内容。

© www.soinside.com 2019 - 2024. All rights reserved.