如何使用Jsoup提取新闻文章?

时间:2016-01-07 05:45:43

标签: android jsoup

我想从link中提取新闻帖,我试过的是使用此代码按类名选择它

Document document = Jsoup.connect(newsLink).get();
Elements element = document.getElementsByClass("sty_txt");
story = element.text();

问题是该网站在.sty_txt内有一个内部div标记用于共享选项。当我在我的应用程序中填充上述代码的结果时段落以share(3次)开头。

现在如何删除此共享选项和其他杂乱内容才能显示文章?

2 个答案:

答案 0 :(得分:1)

或者,您只能使用CSS选择器:

Document doc = Jsoup.connect(newsLink).get();
story = doc.select("div.sty_txt p:not(:has(span.st_readmore_sp))").text();

答案 1 :(得分:0)

您可以从.sty_txt元素中删除一些孩子:

Document document = Jsoup.connect(newsLink).get();
Element element = document.getElementsByClass("sty_txt").first();
Elements children = element.children();
for (Element child : children) {
    Elements subChildren = child.children();
    if(child.hasClass("share-icons-box") || child.hasClass("story_tag_smo") ||
        (subChildren.size() > 0 && subChildren.first().hasClass("st_readmore_sp"))){
        child.remove();
    }
}
String story = element.text();
System.out.println("Story: " + story);

此代码将删除共享按钮,标签和阅读更多链接。