作为一个编程练习,我正在制作一个小的python工具来下载整个网站的本地。为了能够在本地浏览网站,我需要将所有的URLs翻译成相对的URLs。否则,资源文件(.js,.css)将从原网站下载,而不是使用本地下载的版本。既然我需要重写URL,我想我也可以改变文件的层次结构。这就引出了这个略显笼统的问题。
我如何找到一个网站的所有URLs? 一个基于 http://domain.tld/path
不可能,因为一个 href
属性可能包含一个相对的URL。
到目前为止,我已经确定了以下内容。
HTML
href=<url>
(引用)src=<url>
(引用)srcset=<list>
action=<url>
(引用)background=<url>
(引用)CSS
url('<url>')
或 url(<url>)
(可引用或不引用)@import(<url>)
JS
http://example.tld/path
)[编辑]另见 此职位 对于一些查找URL的regexes。不完整,因为 srcset
是没有用在那里的。
也许是个好的开始?
mech-dump --links 'https://stackoverflow.com/questions/62313765
检索。
这个命令是与 珀尔 模块。WWW::Mechanize
包装 libwww-mechanize-perl
对于基于Debian的发行版