有用的选项wget --convert-links
或wget -k
使“下载的 HTML 或 CSS 中的链接指向本地文件”。它进行两次传递:
- 第1步:下载文件。
- 第2步:转换链接。
我想现在进行第 1 步,稍后再进行第 2 步。我想分别调用这两个通道。我想wget
在第 1 遍之后停止,让我做一些事情,然后才继续第 2 遍。我只想将链接转换为单独的命令,无论该命令是命令wget
还是其他命令。请问如何?
如果wget
不能做到这一点,那么是否有 Perl 模块、Python 模块或类似模块可以做到这一点?
(以供参考:这个答案部分回答了我的问题。这个问题类似,但它的答案似乎失败了。无论如何,据我所知,两者都没有提供真正有效的东西。)
答案1
看来这个问题实际上在另一个中得到了回答问题,但它已经过时了,所以这是当前的解决方案:
它涉及在“Pass 1”之后传递您的本地目录,使其wget
相信它是一个网站。这可以通过调用一些简短的 Python 代码轻松完成简单HTTP请求处理程序,然后您wget
使用适当的选项从本地主机重新启动。
沿途的东西这些行能行得通:
import http.server
import socketserver
import os
PORT = 8000 # optional, can be changed
web_dir = os.path.join(os.path.dirname(path), 'web') # change path to your local files here if needed, like '/home' or 'C:\\tmp' on Windows
os.chdir(web_dir)
Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), Handler)
print("serving at port", PORT)
httpd.serve_forever()
那么你wget
就可以被叫到http://localhost:8000