我想提取给定网址的文章文本。
你知道它是否存在一些能够做到这一点的库或现有代码吗?
以下是网址示例:http://fr.news.yahoo.com/france-foot-pro-vote-gr%C3%A8ve-fin-novembre-contre-125358890.html
由于
此致
答案 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();
}
}
}
答案 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);
}
}