24

所以这个问题很好地解释了自己。

是否有控制台命令行可以用 firefox 保存 html?

谢谢。

4

4 回答 4

14

无法通过命令行要求 Firefox 保存页面(截至 2015 年 5 月)。但是,有一个脚本可以自动执行启动 Firefox、保存页面、退出 Firefox 的过程。

https://github.com/abiyani/automate-save-page-as

从自述文件:

当 wget 不削减它时的快速破解。

tl;dr 从命令行执行浏览器的“将页面另存为”(Ctrl+S)操作,无需人工干预

这个小 bash 脚本模拟了一系列按键,在浏览器中打开给定的 url,保存页面 (Ctrl+S),然后关闭浏览器选项卡/窗口 (Ctrl+F4)。

# Use Firefox to open a web-page and save it in /tmp
# (the default name for the file (Page title) is used)
$ ./save_page_as "www.example.com" --browser "firefox" --destination "/tmp" 
于 2015-05-22T22:13:38.520 回答
12

使用 wget 的建议不会处理访问内容需要特殊登录或其他需要从浏览器内部进行一些用户操作的身份验证的情况(例如,将身份验证结果存储在 Firefox 的 cert8.db 或 keys.db 或登录中.sqlite 甚至在 locatsore.rdf 中)。wget --load-cookies 使用 firefox cookie 可能无法工作,如果身份验证是通过加载网页内的 javascript 完成的。

所以用户想要某种方式来运行 Firefox,如下所示:

firefox "<some-url-with-complex-authentication>" -save-to-folder ./somewhere

(当它完成保存它获取的 URL 时,Firefox 退出)。是的,它很重,但是如果您可以在浏览器中查看页面,但不能通过 wget 或类似方式查看,那么目前似乎没有任何方法可以从命令行使用。

但是,可能只是用户没有从 FF 导出最新的 cookie 文件,以便可以通过 wget --load-cookies 加载,因为创建 wget 兼容(netscape 样式)cookie 文件需要:1)安装像 Export Cookies 这样的插件 2) 导出 cookies.txt 文件供 wget 使用。

于 2013-07-23T07:57:11.007 回答
1

使用pup. 与automatic-save-page-as不同,pup它不保存原始 HTML,而是输出解析后的 H​​TML。

于 2020-04-02T22:56:01.040 回答
0

我在带有 PowerShell 的 Windows 上使用这种方式:

[system.Diagnostics.Process]::Start("Firefox","https://stackoverflow.com/questions/15429745/how-can-i-export-html-to-file-via-command-line-with-firefox")
Sleep 2;

$obj_Shell = New-Object -ComObject wscript.shell;
$obj_Shell.AppActivate('Firefox');
Sleep 1;

$obj_Shell.SendKeys("^(s)");
Sleep 3;

$obj_Shell.SendKeys("{ENTER}");

Select-String -Path $env:USERPROFILE + "\Downloads\how-can-i-export-html-to-file-via-command-line-with-firefox.html"
于 2022-01-17T09:12:41.307 回答