2008-09-22 57 views
7

我需要找到一种方法来抓取我们公司的一个Web应用程序,并从中创建一个静态网站,该网站可以刻录成CD,供旅游销售人员用来演示网站。后端数据存储分布在许多系统中,因此仅仅在销售人员的笔记本电脑上的虚拟机上运行该站点将不起作用。他们不会在某些客户端访问互联网(没有互联网,手机......原始人,我知道)。你如何将一个动态站点变成一个可以从CD演示的静态站点?

有没有人有任何可以处理链接清理,flash,ajax,css等的抓取工具的好建议?我知道赔率很渺茫,但我想我会在跳出编写自己的工具之前将问题抛出。

+0

这只能从特定用户的角度出发。因此,抓取工具需要以预先确定的用户身份进行身份验证,然后捕获所有此用户将看到的内容。 – 2008-09-22 20:52:15

回答

3

wget或curl可以递归地跟随链接并镜像整个站点,所以这可能是一个不错的选择。您将无法使用网站的真正互动部分,如搜索引擎或任何修改数据的内容。

是否有可能创建虚拟后端服务,可以从销售人员的笔记本电脑运行,该应用程序可以与接口连接?

12

通过使用WebCrawler,例如,其中之一:

  • DataparkSearch是根据GNU通用公共许可证发布的搜寻器和搜索引擎。
  • GNU Wget是一个命令行操作的爬虫,用C语言编写,并在GPL下发布。它通常用于镜像Web和FTP站点。
  • HTTrack使用Web爬虫来创建网站的镜像以进行脱机查看。它是用C编写的,并在GPL下发布。
  • ICDL Crawler是一个跨平台的网页爬虫,用C++编写,旨在使用计算机的空闲CPU资源基于网站分析模板来抓取网站。
  • JSpider是一个高度可配置和可定制的网络蜘蛛引擎在GPL下发布。
  • Larbin通过的Sebastien Ailleret
  • Webtools4larbin由Andreas贝德尔
  • Methabot是一个速度优化网络爬虫和命令行实用程序用C语言编写和2-条款BSD许可下发布的。它具有广泛的配置系统和模块系统,并支持通过本地文件系统,HTTP或FTP进行有针对性的爬行。
  • Jaeksoft WebSearch是通过Apache Lucene构建的Web爬虫和索引器。它是在GPL v3许可下发布的。
  • Nutch是一个用Java编写的爬虫程序,在Apache许可证下发布。它可以与Lucene文本索引包一起使用。
  • Pavuk是一个带有可选X11 GUI爬虫的命令行Web镜像工具,并在GPL下发布。与wget和httrack相比,它有许多高级功能,例如。基于正则表达式的过滤和文件创建规则。
  • WebVac是斯坦福大学WebBase项目使用的爬行程序。
  • WebSPHINX(Miller和巴勒特,1998)是由一个实现多线程网页检索和HTML解析,和图形用户界面来设置起始网址,以提取所下载的数据,并执行一个一个Java类库的基本的基于文​​本的搜索引擎。
  • 资讯 - 网络信息检索环境[15]是用C++编写并发布在GPL下一个网络爬虫,包括调度页面下载和生成下载的网页报告和统计模块几项政策,因此已被使用用于网页表征。
  • LWP :: RobotUA(Langheinrich,2004)是一个Perl类,用于实现在Perl 5许可下分发的行为良好的并行Web机器人。
  • Web Crawler .NET开放源代码的网络爬虫类(用C#编写)。
  • 福尔摩斯福尔摩斯收集和索引文本数据(文本文件,网页,...),无论是本地和网络。 Holmes由捷克门户网站Centrum赞助和商业使用。它也被Onet.pl使用。
  • YaCy是一个免费的分布式搜索引擎,基于对等网络原理(GPL授权)。
  • Ruya Ruya是一个开源的,高性能的广度优先,基于级别的网络爬虫。它用于以良好的方式抓取英文和日文网站。它是在GPL下发布的,完全用Python语言编写。一个SingleDomainDelayCrawler实现遵循爬行延迟的robots.txt。
  • 通用信息爬虫快速开发网络爬虫。抓取保存并分析数据。
  • 代理内核用于进行爬网时的计划,线程和存储管理的Java框架。
  • 蜘蛛新闻,有关在perl中构建蜘蛛的信息。
  • Arachnode.NET是一款用于下载,索引和存储互联网内容(包括电子邮件地址,文件,超链接,图像和网页)的开源混杂网络爬虫。 Arachnode.net使用SQL Server 2005以C#编写,并在GPL下发布。
  • dine是一个多线程的Java HTTP客户端/爬虫程序,可以在LGPL下发布的JavaScript中进行编程。
  • Crawljax是一个基于动态构建“状态流图”的方法的Ajax爬虫,该方法为Ajax应用程序中的各种导航路径和状态建模。 Crawljax是用Java编写的,并在BSD许可证下发布。
1

如果不将Web服务器烧录到CD上,您无法处理诸如AJAX请求之类的内容,我知道您已经说过这是不可能的。

wget会为您下载网站(使用-r参数进行“递归”),但任何动态内容(如报告等)当然无法正常工作,您只会得到一个快照。

1

如果你最终不得不可以坚持一个网络服务器,你可能想看一看:

ServerToGo

它可以让你运行一个WAMPP堆栈从CD的,完整的mysql/php/apache支持。数据库在启动时被复制到当前用户的临时目录中,并且可以在用户没有安装任何东西的情况下完全运行!

+0

这看起来很有用!我猜这应该能够运行在WAMPP协议栈上运行的CMS系统。 – 2011-09-29 12:40:25

0

仅仅因为没有人复制粘贴工作命令......我正在......十年后。 :D

wget --mirror --convert-links --adjust-extension --page-requisites \ 
--no-parent http://example.org 

它对我来说就像一个魅力。

相关问题