如何将网页html源代码输出到文件中

Mur*_*que 2 command-line bash w3m gdb 14.04

我的目标是将 html 源代码输出到文件中,我使用w3m从终端浏览网页。

在终端上使用以下命令时:w3m <url> -dump程序以非交互方式显示网站,但不显示其 html 源。

如果您打开一个网站w3m <url>,终端将显示该网站,如果您按v,则程序将显示 html 源代码,我尝试编写脚本但没有成功。我认为命令行参数-dump_source会帮助我,但我唯一得到的是非人类阅读内容,我不知道-dump_source应该返回什么

这是我到目前为止尝试过的:

  • 使用-T text/html-dump对端,但输出没有变化
  • 使用-T text/plain-dump_source对终端希望非人的输出将被转换为纯文本,但没有成功(我不明白-T的用途,甚至打字的w3m阅读说明书后man w3m对终端)
  • 知道在 w3m 显示网站从网页内容切换到 html 源代码时按v,我尝试使用gdb将其附加到 w3m 进程并将其stdinstdout重定向到我的文件(input.txt、output.txt ) 其中 input.txt 包含单个v,但我没有成功。在我的测试程序上执行此操作按预期工作。我遵循了这里描述的内容。如果我写ls -l /proc/<w3m_pid>/fd,其中 w3m_pid 是我ps ax在终端上使用的 w3m 进程 ID ,我可以看到有 3 个文件描述符,如果我尝试重定向第三个,程序会崩溃并显示:发生错误:errorno=25
  • 重定向标准 I/Ow3m <url> < input.txt > output.txt也不起作用
  • W3M 使用键绑定在网络上导航,这意味着如果您按v则无需按Enter,终端不会缓冲输入,使用附加到 w3m 进程的 gdb 我试图通过使用将其删除p system ("/bin/stty cooked"),但是 w3m键绑定没有改变。

我的问题是:为什么用 gdb 重定向 I/O 不起作用,我可以做些什么来获取 html 源代码?w3m 可以选择输出我丢失的 html 源代码,或者我必须使用其他程序?

PS:我需要大学作业的 html 源代码,使用 html 源代码我可以创建一个脚本来浏览网页并将页面输出到文件中,而不是我应该使用这些输出和 flex 来提取有关事物的静态信息在网络上,例如:c 语言问题中出现了多少单词 stack?这是我的想法。

任何建议,将不胜感激。

W3M 版本: 0.5.3+debian-15

GDB 版本: 7.7.1

Ubuntu 版本: 14.04

提前致谢!

Anw*_*war 6

为什么不能用curl

curl web-address > file-source.
Run Code Online (Sandbox Code Playgroud)

将在 file

像这样

curl http://askubuntu.com/questions/822139/how-to-output-web-page-html-source-code-into-a-file > source-html
Run Code Online (Sandbox Code Playgroud)