【发布时间】:2011-01-05 16:24:28
【问题描述】:
我不确定一个是否比另一个更好,即。 Java、PHP 或 Perl。
【问题讨论】:
标签: screen-scraping web-scraping
我不确定一个是否比另一个更好,即。 Java、PHP 或 Perl。
【问题讨论】:
标签: screen-scraping web-scraping
最好的就是你最舒服的工作。
【讨论】:
这并不重要,只要您使用正确的工具来完成这项工作。
您需要考虑在哪里部署应用程序(Web 与桌面)、学习新技术/语言所需的时间以及用于解析 RSS 和/或 XML 和/或 HTML 的库的可用性。不过,您提到的三种语言都是不错的候选语言。
【讨论】:
RSS 文件只是您通过 Internet 获得的格式化 XML。对于一种语言,您所需要的只是它可以发出 HTTP 请求并具有解析 XML 的方法。
【讨论】:
框架代码可以是任何形式,但请考虑使用 XSL 转换(或 XPath 查询)将 XML 转换为更可口的格式。特别说明。如果您正在寻找数据的小子集或单个值。
如果源数据一开始就打算进行机器解析,这几乎不是“抓取”。 :)
【讨论】:
如果您在某项特定技术方面更强大,并且您有期限(或其他因素),那么请使用该技术,因为它们都有能力。
如果不是这种情况,则取决于您正在进行的项目的要求,以及您是否想/能够学习新技术。
PHP 是最自然的基于 Web 的技术,您可以使用像 Simple HTML DOM Parser 这样的库(它也支持 XML)来获得快速结果并深入研究 PHP 也将支持的 Web 抓取的复杂性.
Java 有一个名为Web Harvest 的好项目,我过去曾使用过它并取得了不错的效果(尽管你要学习一种非标准的 xml 语法,但它类似于 xslt),并且一旦你的系统设置好,你的网络抓取可以很容易地修改。
Perl 在正则表达式方面是最强大的(我发现在使用正则表达式时,Java,尤其是 PHP 可能会变得有点混乱),而正则表达式是一项很好的技能,因此取决于您想对您的信息做什么,这是一个合理的选择。
【讨论】:
如果您正在编写一个需要经常运行并跨大量站点聚合内容的服务器应用程序,那么性能应该是您的一个重要标准。这意味着一种能够快速处理大量数据的语言。
如果您只是需要一个程序偶尔运行并从许多页面中挑选出一些数据,那么您可以考虑使用一种专门的语言。产品TestPlan 提供了一种非常简单的语言,可让您快速抓取 RSS 内容并以简单的方式将其公开。
我在一些重要的抓取项目中使用过它。虽然速度不是很快,但脚本非常易于维护。
【讨论】: