【问题标题】:jsoup - extract text from wikipedia articlejsoup - 从维基百科文章中提取文本
【发布时间】:2012-09-09 03:02:16
【问题描述】:

我正在编写一些 Java 代码,以便使用 Wikipedia 在文本上实现 NLP 任务。如何使用 JSoup 提取维基百科文章的所有文本(例如 http://en.wikipedia.org/wiki/Boston 中的所有文本)?

【问题讨论】:

标签: java parsing jsoup wikipedia


【解决方案1】:
Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/Boston").get();
Element contentDiv = doc.select("div[id=content]").first();
contentDiv.toString(); // The result

当然,您可以通过这种方式检索格式化的内容。如果您想要“原始”内容,您可以使用 Jsoup.clean 过滤结果或使用调用 contentDiv.text()

【讨论】:

  • 为什么不呢?它应该,但它返回诸如标题或枚举项目符号之类的东西。如果您只想要(英文)单词,则需要稍微过滤一下,但我们不知道您的确切要求。
  • 我在课堂上复制了您的代码,但它不起作用。但是在尝试您的解决方案之前我已经自己完成了......并且解决方案是相似的!不过谢谢...现在我正在处理另一个问题!!! stackoverflow.com/questions/9160760/…
  • 我从实时代码中提取了这些行,所以它们至少应该运行。
  • 是的,他们跑了!但是我解决了这个问题!!!你看过另一个问题吗?
  • 如果这个问题完成了,我会更有动力回答这个问题。我的解决方案有什么问题?你是怎么解决这个问题的?
【解决方案2】:
Document doc = Jsoup.connect(url).get();
    Elements paragraphs = doc.select(".mw-content-ltr p");

    Element firstParagraph = paragraphs.first();
    Element lastParagraph = paragraphs.last();
    Element p;
    int i=1;
    p=firstParagraph;
    System.out.println(p.text());
    while (p!=lastParagraph){
        p=paragraphs.get(i);
        System.out.println(p.text());
        i++;
    } 

【讨论】:

    【解决方案3】:
    Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/Boston").timeout(5000);
    
    Element iamcontaningIDofintendedTAG= doc.select("#iamID") ;
    
    System.out.println(iamcontaningIDofintendedTAG.toString());
    

    Elements iamcontaningCLASSofintendedTAG= doc.select(".iamCLASS") ;
    
    System.out.println(iamcontaningCLASSofintendedTAG.toString());
    

    【讨论】:

      猜你喜欢
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多