网页抓取工具(我知道这太旧了,我只想把我的2美分放进去)
优采云 发布时间: 2022-01-30 00:22网页抓取工具(我知道这太旧了,我只想把我的2美分放进去)
我知道这太旧了,我只想投入我的 2 美分。
wget -m -k -K -E -l 7 -t 6 -w 5
关于每个开关的一些说明:
-m 本质上,这意味着“镜像站点”,它在爬取整个站点的同时递归地爬取页面和图像。它检查时间戳,因此如果您使用此开关第二次运行 wget,它只会更新比上次更新的文件/页面。
-k 这将修改 html 中的链接以指向本地文件。如果您实际上使用的是完整的而不是使用诸如 page2.html 之类的东西作为指向整个 网站 的链接,那么您可能需要/想要这个。我打开它只是为了安全起见 - 否则至少 1 个链接会导致问题。
上面的 -K 选项(小写 k)编辑 html。如果您还想要“未修改”版本,请使用此开关,它将保存更改后的版本和原创版本。如果出现问题并且您想比较两个版本,这只是一种很好的做法。您以后可以随时删除不需要的内容。
-E 这使用“适当的扩展名”保存 HTML 和 CSS。请注意这一点 - 如果您的 网站 没有在每个页面上都有 .html 扩展名,这将添加它。但是,如果您的站点已经拥有以“.htm”之类的名称命名的每个文件,那么您现在将以“.htm.html”结尾。
-l 7 我们上面使用的 -m 默认会递归/爬取整个站点。通常没有问题。但有时您的站点会无限循环,在这种情况下 wget 将永远下载。想想典型的 /products/jellybeans/sort-by-/name/price/name/price/name/price 示例。现在这有点罕见 - 大多数 网站 表现良好并且不这样做,但为了安全起见,找出从主页获得的最大点击次数网站 上的任何真实页面,稍微填充一下(如果您使用值 7 并在一个小时后发现您的 网站 深度为 8 级,那很糟糕!)并使用 #。当然,如果你知道你的 网站 有一个正常运行的结构,那么省略它并没有什么错,并且可以放心知道你的 网站 上有 50 层深的 1 个隐藏页面
-t 6 如果尝试访问/下载页面或文件失败,这将设置在放弃文件并继续之前的重试次数。您通常确实希望它最终放弃(如果您希望它永远尝试,请将其设置为 0),但如果站点只是不稳定,您也不希望它放弃一两秒钟。我认为6是合理的。
-w 5 这告诉 wget 在抓取下一个文件之前等待几秒钟(在本例中为 5 秒钟)。在这里使用一些东西通常很重要(至少 1 秒)。让我解释。默认情况下,wget 会尽可能快地抓取页面。这可以很容易地每秒生成多个请求,这会给服务器带来巨大的负载(特别是如果站点是用 PHP 编写的,对每个请求进行 MySQL 访问,并且不使用缓存)。如果此 网站 位于共享主机上,负载可能会导致某人离开其主机。即使在 VPS 上,也会让一些 网站 跪下。即使站点本身幸存下来,在几秒钟内被大量请求轰炸也可能看起来像是 DOS 攻击,很可能会自动阻止您的 IP。如果您不确定该网站是否可以处理大量涌入的流量,使用 -w # switch.5 通常很安全。在大多数情况下,即使是 1 也可能没问题。但是使用一些东西。