html - 如何在网站上找到所有(可能是相对的)网址?
问题描述
作为一个编程练习,我正在制作一个小型 python 工具来在本地下载整个网站。为了能够在本地浏览网站,我需要将所有 URL 转换为相对 URL。否则,资源文件(.js、.css)将从原始网站下载,而不是使用本地下载的版本。由于我需要重写 URL,我想我也可以更改文件层次结构。这导致了这个稍微更普遍的问题:
如何找到网站中的所有 URL?基于的正则表达式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,我认为不存在完美的解决方案。使用正则表达式来查找完整的 URL 似乎是唯一的方法(例如
http://example.tld/path
)
[编辑] 另请参阅这篇文章以获取一些正则表达式以查找 url。不完整,因为srcset
那里没有使用。
解决方案
也许是一个好的开始?
mech-dump --links 'https://stackoverflow.com/questions/62313765
取回:
- 邮寄
- http(s) 链接
- 图片
此命令与perl模块一起安装:WWW::Mechanize
libwww-mechanize-perl
基于 Debian 的发行版的软件包
推荐阅读
- android - E/Parcel:解组时找不到类:com.kakao.sdk.auth.c$c
- arrays - 如何在数组中推送对象键值
- python - 排序字典,然后用另一个排序
- c# - 无法从控制台应用程序在 Dot Net Core API 中发送令牌
- mysql - 不同条件的连接表
- javascript - iOS 13+ 设备的网络音频音量衰减
- php - Eloquent 中的 Where 子句似乎无法正常工作
- node.js - Socket IO 支持 React Application 和 Node 服务器
- python - 在带有列表的自定义计时器类上尝试 / 除外
- arrays - 如何使用指针按字母顺序对双指针数组中的字符串进行排序