如何找到一个网站上的所有(可能是相对的)url?

问题描述 投票:0回答:1

作为一个编程练习,我正在制作一个小的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

  • 对于JS,我不认为存在一个完美的解决方案。使用regex来查找完整的URL似乎是唯一的方法(例如 http://example.tld/path)

[编辑]另见 此职位 对于一些查找URL的regexes。不完整,因为 srcset 是没有用在那里的。

html regex url web-scraping w3c
1个回答
1
投票

也许是个好的开始?

mech-dump --links 'https://stackoverflow.com/questions/62313765

检索。

  • mailto
  • http链接
  • 图像

这个命令是与 模块。WWW::Mechanize

包装 libwww-mechanize-perl 对于基于Debian的发行版

© www.soinside.com 2019 - 2024. All rights reserved.