前言
关于如何将静态网页中的html
、图片、样式表和JavaScript
文件下载到本地
有以下几种方案
使用wget
假设你要下载的静态网站链接为https://baidu.com
,可以使用以下命令来下载:
1 | wget --recursive --no-clobber --page-requisites --html-extension --convert-links http://example.com |
参数解释:
--recursive
:递归下载,将链接的页面上的链接一并下载--no-clobber
:不重复下载已下载过的文件--page-requisites
:下载页面的所有资源,包括图片、样式表和 JavaScript 文件--html-extension
:将所有的页面文件的后缀名设置为.html
--convert-links
:将页面引用的链接转换为本地路径
执行这个命令后,wget
会将整个网站下载到当前目录下的一个名为example.com
的文件夹中
使用wget
下载的方式可以将整站的静态网页和相对路径资源打包下载到本地 有点类似于整站克隆
以登录状态进行下载
有些网站的页面需要进行登录后才能正常显示 如果我们要实现保持登录状态进行页面的下载 那么就需要使用cookies
首先 我们需要登录获取cookies
然后保存在本地文本中:
1 | wget --save-cookies=cookies.txt --keep-session-cookies --post-data 'username=your_username&password=your_password&other_field=value' https://yourwebsite.com/login |
这里的表单信息需要替换成目标网站的值
cookies.txt
内容格式如下:
1 | # HTTP Cookie File |
有了cookies
后 接下来使用--load-cookies
进行下载
1 | wget --load-cookies=cookies.txt --keep-session-cookies --recursive --no-clobber --page-requisites --html-extension --convert-links https://example.com |
假如用户登录并不是以表单的形式 可能是第三方登录 或者PHP网站 那么我们可以借助python
中的selenium
来模拟浏览器登录获取cookies
python3
代码如下:
1 |
|
或者使用chrome
插件获取并导出cookies
该插件名为Get cookies.txt Clean
使用Chrome插件
Save All Resources
: 该扩展程序可一键下载所有资源文件并保留文件夹结构插件安装后 打开开发者界面
ResourcesSaver
选项卡即可根据自己的需求进行资源下载:注意: 这个插件只能下载当前页面的
Html
页面和相关资源
本文为作者原创 转载时请注明出处 谢谢