首先,让我澄清一下“镜像”和“刮”之间的区别。
镜像是指下载网站的全部内容,或网站的一些突出部分(包括 HTML、图像、脚本、CSS 样式表等)。这样做通常是为了保留和扩展对宝贵(通常是有限的)互联网资源的访问,或者添加额外的故障转移冗余。例如,许多大学和 IT 公司反映了各种 Linux 供应商的发布档案。镜像可能意味着您计划在自己的服务器上托管网站的副本(在原始内容所有者的许可下)。
抓取是指从网站复制和提取一些有趣的数据。与镜像不同,抓取针对的是特定数据集(姓名、电话号码、股票报价等),而不是网站的全部内容。例如,您可以“抓取”美国人口普查局的平均收入数据或 Google 财经的股票报价。这有时违反了主机的条款和条件,使其非法。
可以将两者结合起来,以便将数据复制(镜像)与信息提取(抓取)问题分开。例如,如果数据的提取和分析速度较慢或流程密集,您可能会发现镜像站点的速度更快,然后抓取您的本地副本。
要回答您的其余问题...
file_get_contents
file
PHP 函数用于从本地或远程机器读取文件。该文件可能是 HTML 文件,也可能是其他文件,例如文本文件或电子表格。这不是“镜像”或“抓取”通常所指的内容,尽管您可以使用它们编写自己的基于 PHP 的镜像/抓取器。
wget
并且curl
是命令行独立程序,用于从远程服务器下载一个或多个文件,使用各种选项、条件和协议。两者都是非常强大和流行的工具,主要区别在于wget
具有丰富的内置功能来镜像整个网站。
HTTrack
其意图类似于wget
,但使用 GUI 而不是命令行。这使得那些不习惯从终端运行命令的人更容易使用,但代价是失去了wget
.
您可以使用HTTrack
andwget
进行镜像,但如果这是您的最终目标,则必须在生成的下载数据上运行自己的程序以提取(抓取)信息。
Mozenda
是一个刮板,与或不同HTTrack
,它允许您针对要提取的特定数据,而不是盲目地复制所有内容。但是,我对此几乎没有经验。wget
curl
PS 我通常wget
用来镜像我感兴趣的 HTML 页面,然后运行 Ruby 和 R 脚本的组合来提取和分析数据。