我们如何将动态站点转换为可以从CD进行演示的静态站点?

时间:2020-03-06 14:33:51  来源:igfitidea点击:

我需要找到一种方法来抓取我们公司的一个Web应用程序,并从中创建一个静态站点,该站点可以刻录到CD上,并由旅行销售人员用来演示该网站。后端数据存储分布在许多系统上,因此仅在销售人员的便携式计算机上的VM上运行站点是行不通的。而且,在某些客户那里,他们将无法访问互联网(没有互联网,手机...。我知道是原始的)。

有没有人对爬网程序有什么好的建议,可以处理诸如链接清理,闪存,一点ajax,css等问题?我知道几率很小,但我认为在跳入编写自己的工具之前,我会把这个问题抛诸脑后。

解决方案

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

  • DataparkSearch是根据GNU通用公共许可证发布的搜寻器和搜索引擎。
  • GNU Wget是一个用C编写并在GPL下发布的命令行操作的搜寻器。它通常用于镜像Web和FTP站点。
  • HTTrack使用Web搜寻器创建网站的镜像以供离线查看。它是用C编写的,并根据GPL发布。
  • ICDL Crawler是用C ++编写的跨平台Web爬虫,旨在仅使用计算机的免费CPU资源来基于"网站解析模板"对网站进行爬网。
  • JSpider是在GPL下发布的高度可配置和可自定义的Web蜘蛛引擎。
  • 塞巴斯蒂安·艾勒雷特(Sebastien Ailleret)的《拉宾(Larbin)》
  • Webtools4larbin作者Andreas Beder
  • Methabot是一个速度优化的Web爬网程序和命令行实用程序,用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和Bharat,1998年)由一个Java类库和一个图形用户界面组成,该Java类库实现了多线程的网页检索和HTML解析,并设有图形用户界面来设置起始URL,提取下载的数据并实现基本的文本-基于搜索引擎。
  • WIRE-Web Information Retrieval Environment [15]是用C ++编写并在GPL下发布的Web爬网程序,其中包括一些用于计划页面下载的策略以及一个用于在下载页面上生成报告和统计信息的模块,因此已用于Web表征。
  • LWP :: RobotUA(Langheinrich,2004年)是一个Perl类,用于实现在Perl 5许可下分发的行为良好的并行Web机器人。
  • Web爬网程序.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搜寻器。抓取保存并分析数据。
  • 代理内核一种Java框架,用于在爬网时进行计划,线程和存储管理。
  • 蜘蛛新闻,有关在perl中构建蜘蛛的信息。
  • Arachnode.NET是一个开放源代码的混杂Web搜寻器,用于下载,索引和存储Internet内容,包括电子邮件地址,文件,超链接,图像和Web页面。 Arachnode.net使用SQL Server 2005用C#编写,并在GPL下发布。
  • dine是一个多线程Java HTTP客户端/爬网程序,可以使用LGPL下发布的JavaScript进行编程。
  • Crawljax是基于一种方法的Ajax搜寻器,该方法可动态构建一个"状态流图",该图对Ajax应用程序中的各种导航路径和状态进行建模。 Crawljax用Java编写,并根据BSD许可发布。

wget或者curl可以递归地跟踪链接并镜像整个站点,因此这可能是一个不错的选择。我们将无法使用网站的真正交互式部分,例如搜索引擎或者任何修改数据的部分。

是否可以创建可以在销售人员的笔记本电脑上运行的虚拟后端服务,并且该应用程序可以与之交互?

如果不将Web服务器刻录到CD,我们将无法处理AJAX请求之类的事情,据我了解,我们已经说过这是不可能的。

wget将为我们下载该站点(将-r参数用于"递归"),但是任何动态内容(如报表等)当然都无法正常工作,我们只会得到一个快照。

如果最终不得不在Web服务器上运行它,则可能需要查看以下内容:

ServerToGo

它使我们可以从CD上运行WAMPP堆栈,并带有mysql / php / apache支持。该数据库将在启动时复制到当前用户的temp目录中,并且可以完全运行而无需用户安装任何东西!