httrack wget 卷曲抓取和获取

2024-04-11

互联网上有许多工具可用于下载网站的静态副本,例如 HTTrack。还有许多工具(其中一些是商业工具)用于从网站“抓取”内容,例如 Mozenda。还有一些显然内置于 PHP 和 *nix 等程序中的工具,您可以在其中“file_get_contents”或“wget”或“cURL”或只是“file()”。

我对这一切感到彻底困惑,我认为主要原因是我遇到的描述都没有使用相同的词汇。至少从表面上看,他们似乎都在做同样的事情,但也许并非如此。

这是我的问题。这些工具到底在做什么?他们在做同样的事情吗?他们通过不同的技术做同样的事情吗?如果他们做的不是同一件事,那他们有何不同?


首先,让我澄清一下“镜像”和“抓取”之间的区别。

镜像是指下载网站的全部内容,或其某些重要部分(包括 HTML、图像、脚本、CSS 样式表等)。这样做通常是为了保留和扩展对有价值(且通常有限)的互联网资源的访问,或添加额外的故障转移冗余。例如,许多大学和 IT 公司都会镜像各个 Linux 供应商的发行档案。镜像可能意味着您计划在自己的服务器上托管网站的副本(经过原始内容所有者的许可)。

Scraping指从网站上复制并提取一些有趣的数据。与镜像不同,抓取的目标是特定的数据集(姓名、电话号码、股票报价等),而不是网站的全部内容。例如,您可以从美国人口普查局“抓取”平均收入数据或从 Google 财经“抓取”股票报价。有时这样做是违反主机的条款和条件的,因此是非法的。

可以将两者结合起来,以便将数据复制(镜像)与信息提取(抓取)问题分开。例如,您可能会发现,如果数据的提取和分析速度缓慢或过程密集,那么镜像站点然后抓取本地副本会更快。

回答你剩下的问题......

file_get_contents and filePHP 函数用于从本地或远程计算机读取文件。该文件可能是 HTML 文件,也可能是其他文件,例如文本文件或电子表格。这不是“镜像”或“抓取”通常所指的内容,尽管您可以使用它们编写自己的基于 PHP 的镜像/抓取器。

wget and curl是命令行独立程序,用于使用各种选项、条件和协议从远程服务器下载一个或多个文件。两者都是非常强大且流行的工具,主要区别在于wget具有丰富的内置功能来镜像整个网站。

HTTrack类似于wget其意图,但使用 GUI 而不是命令行。这使得那些不习惯从终端运行命令的人更容易使用,但代价是失去了wget.

您可以使用HTTrack and wget用于镜像,但如果这是您的最终目标,您将必须对生成的下载数据运行您自己的程序以提取(抓取)信息。

Mozenda是一个刮刀,与HTTrack, wget or curl允许您有针对性地提取特定数据,而不是盲目复制所有内容。然而,我对此缺乏经验。

附:我通常使用wget镜像我感兴趣的 HTML 页面,然后运行 ​​Ruby 和 R 脚本的组合来提取和分析数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

httrack wget 卷曲抓取和获取 的相关文章

随机推荐

  • 如何将复杂的 django 查询构建为字符串

    我正在动态生成具有多个参数的查询字符串 我试图在字符串中包含对象名称 坚果 果酱 该查询必须是 OR 查询 我的代码如下 我收到如下所示的错误 解决方案here https stackoverflow com questions 18161
  • 覆盖 Hibernate 注解

    我正在开发一个使用 Hibernate 并连接到 Oracle 实例的 Java 应用程序 另一个客户希望使用相同的应用程序 但要求它在 MS SQL Server 上运行 我想避免对现有注释进行更改 而是创建一个 xml 文件包 我们可以
  • 如何从 SharePoint 自定义列表中的日期/时间列获取日期和当前时间

    我在 sharepoint 2007 的自定义列表之一中有一个名为 提交日期 的列作为日期 时间 它总是设置为今天的日期和上午 12 点时间 而不是我想显示今天的日期和当前时间 hh mm ss 我尝试创建计算列 TestDate 公式为
  • 如何从给定缓冲区解码视频? (媒体编解码器)

    我需要解码来自交错流 如 AVI 的数据 所以 这意味着我有一个以这种形状 序列 构建的容器 mp4 gt other data gt mp4 gt other data gt so on 目前我有一个基本的实现MediaCodec解码器
  • 为什么直接导航到该路线时不匹配?

    郑重声明 这是使用当前相当新的 angular router 3 0 0 alpha 8 路线定义位于帖子底部 当尝试在我的应用程序中导航时 行为会有所不同 具体取决于我是直接输入 URL 还是通过链接输入 Works 进入http loc
  • 一个人可以采用敏捷技术吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 目前正在找工作 我看到很多地方都要求敏捷经验 但在我找到使用敏捷的团队的工作之前 我怀疑我永远不会获得这种经验 是否可以仅由一个人采用敏捷方法
  • AttributeError:模块“numpy”没有属性“core”

    我想知道是否有人在运行 Spark 并尝试导入 numpy 时遇到这个问题 Numpy 在标准笔记本中正确导入 但是当我尝试通过运行 Spark 的笔记本导入它时 出现此错误 我有最新版本的 numpy 并且正在运行最新的 anaconda
  • RxJava 中的笛卡尔积

    是否有可能在rxjava中获得两个Observables的笛卡尔积 像这样的事情 A gt 1 2 3 B gt a b A x B gt 1 a 1 b 2 a 2 b 3 a 3 b 你想要的是 对于一个数字 产生与你有字母一样的一对
  • 提交 OSX 应用程序及其捆绑包中的帮助程序应用程序

    我真的要被这个问题搞疯了 我有一个应用程序 其中包含一个简单的帮助程序应用程序 用于管理主应用程序的登录项 当我尝试提交应用程序时 我收到与配置文件和权利相关的错误 我确信问题与助手应用程序有关 因为在我添加它之前 提交工作没有问题 目前
  • PHP获取下拉列表选择选项值

    在我的下拉列表中 每个选项都有两个不同的值 我怎样才能检索两者 让我来说明一下我的意思
  • 从 Html 源在 Excel 中创建注释

    因此 可以从 Html 创建 Excel 文件 我发现很多事情都是可能的 比如添加图像 格式化等 只需一些 css 调整 然而 我现在想做的是让小红色三角形评论显示出来 我创建了一个空白的 Excel 文件 除了注释之外什么都没有 但它生成
  • 在 python 中向量化 for 循环

    我是 python 的新手 有一个关于向量化代码的问题要问 def makeNames2 nList for nLi in nList nLIdx i for i j in enumerate nList if j nLi if nLIdx
  • 如何将 MapView 从像素缩放到米

    我正在制作一个使用 Google Maps API 的 Android 应用程序 我想将 MapView 缩放到 X pixels X meters 例如 我的屏幕中 MapView 的 5 像素 实际距离为 20 米 那可能吗 Thx 使
  • React table v7固定列与react-window

    我有一张带有react table v7 的表 使用react window进行虚拟化 现在表的最后一列已修复 但我无法修复表的最后一列 React window 的内部元素有overflow auto这不会让色谱柱最终变得粘稠 这是lin
  • VisualStateManager WPF 不工作

    我专门在 VS Blend 2017 设计器中设计了一个窗口 没有对 XAML 代码进行任何更改 我创建了一个 StateGroup 和一个 State 并记录了 Button 上的更改 当尝试从代码隐藏应用状态时 没有任何反应 我也看过同
  • 我的基于角色的访问控制是可行的解决方案吗?

    我正在我的 PHP 项目中设计一个非常简单的 RBAC 基于角色的访问控制 系统 经过一番思考后 我想出了一个解决方案 但是对构建业务系统了解不多 我不确定是否有或可能是我的解决方案的任何重大设计缺陷 基本上 我想为用户提供一组 角色 我将
  • 即使关闭 android studio 后,Gradle 仍将 java 作为一个进程

    On mac system whenever i close android studio it leaves java process and java process keep running and keep hogging the
  • MATLAB - 相关属性和计算

    假设我有以下类来计算二次方程的解 classdef MyClass lt handle properties a b c end properties Dependent true x end methods function x get
  • Multer文件上传错误,请求挂起

    我以前从未写过问题 因为我总是在提问之前在这里找到问题的答案 然而 我在 Express 上的文件上传 POST 路由上的 fileFilter 函数上遇到了困难 我在路由中使用了 multer 上传功能 也作为中间件 后面有一个错误处理中
  • httrack wget 卷曲抓取和获取

    互联网上有许多工具可用于下载网站的静态副本 例如 HTTrack 还有许多工具 其中一些是商业工具 用于从网站 抓取 内容 例如 Mozenda 还有一些显然内置于 PHP 和 nix 等程序中的工具 您可以在其中 file get con