9

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

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

4

5 回答 5

15

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

  • DataparkSearch 是根据 GNU 通用公共许可证发布的爬虫和搜索引擎。
  • GNU Wget 是一个命令行操作的爬虫,用 C 语言编写并在 GPL 下发布。它通常用于镜像 Web 和 FTP 站点。
  • HTTrack 使用网络爬虫创建网站的镜像以供离线查看。它是用 C 语言编写的,并在 GPL 下发布。
  • ICDL Crawler 是一个用 C++ 编写的跨平台网络爬虫,旨在仅使用计算机的免费 CPU 资源来爬取基于网站解析模板的网站。
  • JSpider 是一个在 GPL 下发布的高度可配置和可定制的网络蜘蛛引擎。
  • 塞巴斯蒂安·艾莱雷 (Sebastien Ailleret) 的拉宾
  • 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 并具有抓取延迟。
  • Universal Information Crawler 快速开发的网络爬虫。Crawls 保存和分析数据。
  • 代理内核 爬取时用于调度、线程和存储管理的 Java 框架。
  • 蜘蛛新闻,关于在 perl 中构建蜘蛛的信息。
  • Arachnode.NET 是一个开源混杂网络爬虫,用于下载、索引和存储 Internet 内容,包括电子邮件地址、文件、超链接、图像和网页。Arachnode.net 使用 SQL Server 2005 用 C# 编写,并在 GPL 下发布。
  • dine 是一个多线程的 Java HTTP 客户端/爬虫,可以用在 LGPL 下发布的 JavaScript 进行编程。
  • Crawljax 是一个基于动态构建“状态流图”的方法的 Ajax 爬虫,该方法对 Ajax 应用程序中的各种导航路径和状态进行建模。Crawljax 是用 Java 编写的,并在 BSD 许可下发布。
于 2008-09-22T20:40:18.153 回答
9

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

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

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

于 2018-01-25T21:30:37.420 回答
3

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

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

于 2008-09-22T20:41:45.890 回答
1

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

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

于 2008-09-22T20:42:35.107 回答
1

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

ServerToGo

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

于 2008-11-26T16:38:39.913 回答