我想抓取我已无法访问的备份网站。该网站的备份位于 subdomain.somesite.com,而网页上的链接位于 www.subdomain.com
这导致了以下情况:
链接http://subdomain.somesite.com/?page_id=number有效,但实际的 html 中的链接是http://www.subdomain.com/?page_id=number并且不起作用。
有什么想法可以在不编写自定义爬虫的情况下做到这一点吗?
我可以访问 wordpress 上的 www.subdomain.com。一个想法是使用模式 /?page_id=number 重定向所有页面。
例子。 http://www.subdomain.com/?page_id=255将导致http://subdomain.somedomain/?page_id=255
答案1
如果您的问题是关于将请求从 www.subdomain 重定向到 subdomain.somedomain,您可以简单地使用Apache 中的 RewriteRule或其他 Web 服务器中的类似实现。您可以使用代理参数 P 从 www. 域为站点提供服务,并让 Web 服务器动态地从备份站点获取它。
如果您想抓取并修改内容,最简单的解决方案是使用wget
镜像选项(适用于 Linux、Windows 等)。使用内置函数将绝对链接转换为相对链接可能就足够了。否则,只需使用搜索和替换工具或正则表达式来修改下载文件夹中的域。
答案2
gnu wget 可以做到这一点。该选项-r
用于递归下载,-k
转换链接。请参阅请参阅手册页以获取更多信息