【问题标题】:How do you turn a dynamic site into a static site that can be demo'd from a CD?如何将动态站点转变为可以从 CD 演示的静态站点?
【发布时间】:2010-09-12 03:51:30
【问题描述】:

我需要找到一种方法来抓取我们公司的一个 Web 应用程序,并从中创建一个静态站点,该站点可以刻录到 cd 上,供旅行销售人员用来演示该网站。后端数据存储分布在很多很多系统上,因此简单地在销售人员笔记本电脑上的虚拟机上运行站点是行不通的。而且他们在某些客户端(没有互联网,手机......原始,我知道)时无法访问互联网。

是否有人对可以处理链接清理、flash、一点 ajax、css 等内容的爬虫有什么好的建议?我知道可能性很小,但我想在我开始编写自己的工具之前我会在这里提出这个问题。

【问题讨论】:

  • 这只能从特定用户的角度工作。因此,爬虫需要以预先确定的用户身份进行身份验证,然后捕获该用户看到的所有内容。

标签: html web-crawler static-site


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果不将网络服务器刻录到 CD,您将无法处理诸如 AJAX 请求之类的事情,我知道您已经说过这是不可能的。

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

      【讨论】:

        【解决方案4】:

        如果你最终不得不从网络服务器上运行它,你可能想看看:

        ServerToGo

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

        【讨论】:

        • 这看起来很有用!我猜这应该能够运行开箱即用的 CMS 系统,它也可以在 WAMPP 堆栈上运行?
        • 我已经很多年没看过这个了,但是我看到这个页面 (server2go-web.de/wiki/tutorials) 有一个关于如何将 Server2Go 与 Joomla 一起使用的教程,但看起来它的链接已经死了。但是他们有一个名为 Contrexx 的德国 CMS 教程,其中显示了类似的设置步骤,我敢肯定。
        【解决方案5】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-07
          • 2014-05-04
          • 2022-11-03
          • 2010-09-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多