WGet 或 cURL:来自 http://site.com 的镜像站点,无内部访问权限

WGet 或 cURL:来自 http://site.com 的镜像站点,无内部访问权限

我尝试了wget -m wget -r很多种方法。我得到了一些图像http://site.com,其中一个脚本,没有任何 CSS,甚至带有 fscking-p参数。唯一的 HTML 页面是 index.html,还有几个引用,所以我很茫然。 curlmirror.pl在 cURL 开发人员网站上似乎也没有完成工作。我遗漏了什么吗?我尝试过仅使用此 URL 进行不同级别的递归,但我感觉我遗漏了一些东西。长话短说,一些学校允许学生提交网络项目,但他们想知道如何为将对其进行评分的老师收集所有内容,而不是让他访问所有外部托管网站。

更新:我想我已经找到问题所在了。我以为其他页面的链接在下载的 index.html 页面中。我方式关闭。原来,包含所有导航链接的页脚由 JavaScript 文件处理Include.js,该文件读取JLSSiteMap.js一些其他 JS 文件来执行页面导航等操作。因此,wget 不会获取其他依赖项,因为很多此类垃圾不在网页上处理。我该如何处理这样的网站?这是几个问题案例之一。我认为如果 wget 无法解析 JavaScript,就无能为力了。

答案1

不幸的是,wget 无法解析 JavaScript,因此抓取这样的网站非常困难。

好消息是,搜索引擎通常也不会解析它,因此他们很可能向搜索引擎提供略有不同的内容(这对于其他原因),这样他们的页面才能被索引。如果他们想真正被索引,他们必须向搜索引擎提供无需 JavaScript 即可访问的页面。如果是这种情况,您可以通过使用 wget 欺骗 Googlebot 来解决这个问题,例如:

wget --user-agent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www. google.com/bot.html)" ...

只有极少数网站会真正检查您的 IP 地址以确认您是否真的是 Googlebot,但这种情况并不常见。

另一件事是检查/sitemap.xml文件是否存在,并将其用作要抓取的 URL 列表。有些网站提供此文件供 Google 和其他搜索引擎使用来抓取他们的内容,但是没有任何东西说你不能使用它......

答案2

相关内容