【问题标题】:HTML parser...My recent project needs a web spiderHTML解析器...我最近的项目需要一个网络蜘蛛
【发布时间】:2009-09-25 02:51:46
【问题描述】:

HTML 解析器......我最近的项目需要一个网络蜘蛛......它会自动获取网络内容,它会递归地获取链接...... 但是,它需要准确地知道它的内容。像标签。 它在linux和windows中运行..你知道一些关于这个需求的开源.. 谢谢 或关于一些建议。

【问题讨论】:

  • 你的项目是用什么语言编写的?

标签: html parsing web-crawler


【解决方案1】:

Here 是一个 StackOverflow 问题,展示了如何在不同语言中使用多个 XML/HTML 解析器。如果您告诉我们您使用的是什么语言,我可以更具体一些,但您的答案可能已经在里面了。

【讨论】:

    【解决方案2】:

    取决于您正在开发的语言,尝试谷歌搜索:

    html 解析器语言名

    例如,hpricot 对 Ruby 来说是一个很好的选择。

    【讨论】:

      【解决方案3】:

      我认为您需要了解的主题是正则表达式。

      正则表达式适用于所有平台和所有语言(Java、PHP、Python、C#、Ruby、Javascript)。 使用正则表达式,您可以轻松地将其内容精确到您想要的首选形式。

      Pattern p = Pattern.compile("<a\\s[^>]*href=\"([^\"]+?)\"[^>]*>");
      Matcher m = p.matcher(pageContent);
      while( m.find() ) { 
        System.out.println( m.group(1) );
      }
      

      上面用Java编写的代码块将提取页面中的所有锚标记并将URL提取到您的手中。

      如果你没有足够的时间学习正则表达式,下面的参考资料可以帮助你。

      http://htmlparser.sourceforge.net/

      【讨论】:

      • 你不应该使用正则表达式来解析非常规语言。即使这可行,当您的需求发生变化时会发生什么?为什么不从适合工作的工具开始,而不是尝试一起破解一些东西呢? (X|HT)ML 解析器几乎适用于所有现代语言,并且相当容易使用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 2019-04-18
      • 2013-08-05
      相关资源
      最近更新 更多