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

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

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

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

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

这是我迄今为止尝试过的:

  • -T text/html在终端上使用-dump但输出没有改变
  • -T text/plain在终端上使用-dump_source,希望将非人类输出转换为纯文本,但没有成功(我不明白 -T 是用来做什么的,即使man w3m在终端上输入阅读了 w3m 手册之后)
  • 知道紧迫当 w3m 显示网站从网页内容切换到 html 源代码时,我尝试使用数据库将其附加到 w3m 进程并重定向其标准输入标准输出到我的文件(input.txt,output.txt),其中input.txt包含一个,但我没有成功。在我的测试程序上执行此操作按预期进行。我按照描述进行操作这里如果我写入ls -l /proc/<w3m_pid>/fd,其中 w3m_pid 是我ps ax在终端上使用时获得的 w3m 进程 id,我可以看到有 3 个文件描述符,如果我尝试重定向第三个,程序就会崩溃并显示:发生错误:errorno=25
  • 重定向标准 I/Ow3m <url> < input.txt > output.txt也不起作用
  • W3M 使用按键绑定在网络上导航,这意味着如果你按无需按回车键,终端没有缓冲输入,使用附加到 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

提前致谢!

答案1

为什么不能使用curl

curl web-address > file-source.

将输出源代码file

像这样

curl http://askubuntu.com/questions/822139/how-to-output-web-page-html-source-code-into-a-file > source-html

答案2

这个问题已经在以下帖子中回答过了:https://askubuntu.com/a/1273410/1124534

w3m -o accept_encoding=UTF-8 -dump_source google.com >file

相关内容