0

我正在尝试从“纽约时报”网址获取新闻文章,但它没有提供任何输出,但如果我尝试任何其他报纸,它会提供输出。我想知道我的代码是否有问题或锅炉管道无法获取它。另外,有时输出不是英语,这意味着它主要以 unicode 显示“每日新闻”,我也想知道原因。导入 java.io.InputStream;导入 java.net.URL;

import org.xml.sax.InputSource;

import de.l3s.boilerpipe.document.TextDocument;
import de.l3s.boilerpipe.extractors.ArticleExtractor;
import de.l3s.boilerpipe.extractors.DefaultExtractor;
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput;

class ExtractData
{
    public static void main(final String[] args) throws Exception 
    {
        URL url;
        url = new URL(
                "http://www.nytimes.com/2013/03/02/nyregion/us-judges-offer-addicts-a-way-to-avoid-prison.html?hp&_r=0");

        // NOTE We ignore HTTP-based character encoding in this demo...
        final InputStream urlStream = url.openStream();
        final InputSource is = new InputSource(urlStream);
        final BoilerpipeSAXInput in = new BoilerpipeSAXInput(is);
        final TextDocument doc = in.getTextDocument();
        urlStream.close();

        // You have the choice between different Extractors

        //System.out.println(DefaultExtractor.INSTANCE.getText(doc));
        System.out.println(ArticleExtractor.INSTANCE.getText(doc));
    }
}
4

1 回答 1

1

Nytimes.com 有一个付费墙,它会为您的请求返回HTTP 303,您可以尝试处理重定向和 cookie。尝试其他用户代理字符串也可能有效。

于 2015-02-22T20:46:18.430 回答