Exemple #1
0
  /**
   * 获取新闻的内容
   *
   * @param newsContentFilter
   * @param parser
   * @return content 新闻内容
   */
  public String getNewsContent(NodeFilter newsContentFilter, Parser parser) {
    String content = null;
    StringBuilder builder = new StringBuilder();

    try {
      NodeList newsContentList = parser.parse(newsContentFilter);
      for (int i = 0; i < newsContentList.size(); i++) {
        Div newsContenTag = (Div) newsContentList.elementAt(i);
        builder = builder.append(newsContenTag.getStringText());
      }
      content = builder.toString(); // 转换为String 类型。
      if (content != null) {
        parser.reset();
        parser = Parser.createParser(content, "utf8");
        StringBean sb = new StringBean();
        sb.setCollapse(true);
        parser.visitAllNodesWith(sb);
        content = sb.getStrings();
        // String s = "\";} else{ document.getElementById('TurnAD444').innerHTML = \"\";} }
        // showTurnAD444(intTurnAD444); }catch(e){}";

        content = content.replaceAll("\\\".*[a-z].*\\}", "");

        content = content.replace("[我来说两句]", "");

      } else {
        System.out.println("没有得到新闻内容!");
      }

    } catch (ParserException ex) {
      Logger.getLogger(AreaTest.class.getName()).log(Level.SEVERE, null, ex);
    }

    return content;
  }
Exemple #2
0
  /**
   * 根据提供的URL,获取此URL对应网页所有的纯文本信息,次方法得到的信息不是很纯, 常常会得到我们不想要的数据。不过如果你只是想得到某个URL 里的所有纯文本信息,该方法还是很好用的。
   *
   * @param url 提供的URL链接
   * @return RL对应网页的纯文本信息
   * @throws ParserException
   * @deprecated 该方法被 getNewsContent()替代。
   */
  @Deprecated
  public String getText(String url) throws ParserException {
    StringBean sb = new StringBean();

    // 设置不需要得到页面所包含的链接信息
    sb.setLinks(false);
    // 设置将不间断空格由正规空格所替代
    sb.setReplaceNonBreakingSpaces(true);
    // 设置将一序列空格由一个单一空格所代替
    sb.setCollapse(true);
    // 传入要解析的URL
    sb.setURL(url);

    // 返回解析后的网页纯文本信息
    return sb.getStrings();
  }