如何将动态网站转换为静态网站,以便可以从光盘演示?

9
我需要找到一种方法来爬取我们公司的一个Web应用程序,并创建一个静态网站,可以将其刻录到CD上,并由旅行销售人员用于演示该网站。后端数据存储分布在许多系统中,因此仅在销售人员的笔记本电脑上运行网站不起作用。而且他们在某些客户那里没有互联网访问(没有互联网、手机……原始,我知道)。
有没有人有任何好的建议,可以处理链接清理、Flash、一点Ajax、CSS等内容的爬虫?我知道可能性很小,但我想在编写自己的工具之前在这里提出问题。

这个程序只需要从特定用户的角度工作。因此,网络爬虫需要作为预定用户进行身份验证,然后以该用户所看到的方式捕获所有内容。 - John Miller
5个回答

15

通过使用WebCrawler,例如以下之一:

  • DataparkSearch是一个爬虫和搜索引擎,发布在GNU通用公共许可证下。
  • GNU Wget是一个命令行操作的爬虫,用C语言编写,发布在GPL下。它通常用于镜像网站和FTP站点。
  • HTTrack使用Web爬虫创建网站的镜像,以供离线查看。它用C语言编写,发布在GPL下。
  • ICDL Crawler是一个跨平台的Web爬虫,用C++编写,旨在仅使用计算机的免费CPU资源来爬取基于网站解析模板的网站。
  • JSpider是一个高度可配置和可定制的Web蜘蛛引擎,发布在GPL下。
  • Larbin由Sebastien Ailleret编写
  • Webtools4larbin由Andreas Beder编写
  • Methabot是一个速度优化的Web爬虫和命令行实用程序,用C语言编写,发布在2条款BSD许可证下。它具有广泛的配置系统、模块系统,并支持通过本地文件系统、HTTP或FTP进行有针对性的爬取。
  • Jaeksoft WebSearch是一个基于Apache Lucene构建的Web爬虫和索引器。它发布在GPL v3许可证下。
  • Nutch是一个用Java编写的爬虫,发布在Apache许可证下。它可以与Lucene文本索引包一起使用。
  • Pavuk是一个命令行Web镜像工具,带有可选的X11 GUI爬虫,发布在GPL下。它比wget和httrack具有许多先进的功能,例如基于正则表达式的过滤和文件创建规则。
  • WebVac是斯坦福WebBase项目使用的爬虫。
  • WebSPHINX(Miller和Bharat,1998)由Java类库组成,实现了多线程网页检索和HTML解析,以及用于设置起始URL、提取下载数据和实现基本文本搜索引擎的图形用户界面。
  • WIRE - Web Information Retrieval Environment [15]是一个用C++编写的Web爬虫,发布在GPL下,包括几个调度页面下载的策略和生成有关已下载页面的报告和统计信息的模块,因此它被用于Web特征描述。
  • LWP::RobotUA(Langheinrich,2004)是一个Perl类,用于实现遵循良好行为的并行Web机器人,分布在Perl 5的许可证下。
  • Web Crawler是.NET的开源Web爬虫类(用C#编写)。
  • Sherlock Holmes Sherlock Holmes收集和索引文本数据(文本文件、网页等),既可以在本地使用,也可以通过网络使用。Holmes由捷克网门户Centrum赞助和商业使用。它也被Onet.pl使用。
  • YaCy是一个建立在点对点网络原理上的免费分布式搜索引擎(根据GPL许可证授权)。
  • Ruya Ruya是一个开源的、高性能的广度优先、基于层次的Web爬虫。它用于以良好的方式爬取英文和日文网站。它发布在GPL下,并完全用Python语言编写。SingleDomainDelayCrawler实现遵守robots.txt并具有爬行延迟。
  • Universal Information Crawler快速开发Web爬虫。爬行保存并分析数据。
  • Agent Kernel是一个Java框架,

14

只是因为没有人复制并粘贴可行的命令……我正在尝试……十年后。:D

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

它对我完美地起了作用。


1
我在这个问题上不断获得赞,我必须承认我开始有些困惑了,需要花费几秒钟来回忆什么是Live CD。 - AsTeR

3

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

是否有可能创建虚假的后端服务,可以从销售人员的笔记本电脑上运行,并与应用程序进行交互?


1

如果你最终需要在一个Web服务器上运行它,你可能会想要看看:

ServerToGo

它允许你在CD上运行WAMPP堆栈,并且完全支持mysql/php/apache。数据库在启动时被复制到当前用户的临时目录中,而且可以完全无需用户安装任何东西来运行!


这看起来很有用!我猜想这应该能够在WAMPP堆栈上运行的开箱即用CMS系统中运行? - Steven Jeuris
1
我已经多年没有看过这个了,但我看到这个页面(http://www.server2go-web.de/wiki/tutorials)有一个关于如何在Joomla中使用Server2Go的教程,但它看起来链接已经失效了。但是他们有一个针对一种名为Contrexx的德国CMS的教程,其中显示了类似的设置步骤,我相信可以参考。 - Brad Parks

1

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

wget将为您下载该网站(使用-r参数进行“递归”),但是任何动态内容例如报告等都将不能正常工作,您只能获得单个快照。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接