从URL中提取文章文本

时间:2013-10-24 14:05:08

标签: java rss extract rss-reader

我想提取给定网址的文章文本。

你知道它是否存在一些能够做到这一点的库或现有代码吗?

以下是网址示例:http://fr.news.yahoo.com/france-foot-pro-vote-gr%C3%A8ve-fin-novembre-contre-125358890.html

由于

此致

2 个答案:

答案 0 :(得分:1)

您需要使用JTomatoSoup其用途是:

  

从URL,文件或字符串中抓取并解析HTML       使用DOM遍历或CSS选择器查找和提取数据       操纵HTML元素,属性和文本
      清除用户提交的内容以防止安全白名单,以防止XSS攻击       输出整洁的HTML

该网站还有一个简单的入门示例,但这里是来自Mykong的 SSCCE

import java.io.IOException;

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

public class HTMLParserExample1 {

  public static void main(String[] args) {

    Document doc;
    try {

        // need http protocol
        doc = Jsoup.connect("http://google.com").get();

        // get page title
        String title = doc.title();
        System.out.println("title : " + title);

        // get all links
        Elements links = doc.select("a[href]");
        for (Element link : links) {

            // get the value from href attribute
            System.out.println("\nlink : " + link.attr("href"));
            System.out.println("text : " + link.text());

        }

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

  }

}  

网站:http://jsoup.org/

答案 1 :(得分:0)

我特别喜欢使用Apache HTTPClient库。您可以非常轻松地创建HTTP请求,并根据需要解析结果。这是使用您的URL(但没有解析)的非常简单的例子。

import java.io.IOException;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;


public class Test {

    public static void main(String[] args) throws ParseException, IOException {     
        DefaultHttpClient httpclient = new DefaultHttpClient();     

        HttpGet httpget = new HttpGet("http://fr.news.yahoo.com/france-foot-pro-vote-gr%C3%A8ve-fin-novembre-contre-125358890.html");
        HttpResponse response = httpclient.execute(httpget);
        String responseText = EntityUtils.toString(response.getEntity());
        EntityUtils.consumeQuietly(response.getEntity());

        System.out.println(responseText);
    }

}