web-dev-qa-db-ja.com

Webページhtmlソースコードをファイルに出力する方法

私の目標は、htmlソースをファイルに出力することです。w3mを使用して、ターミナルからWebをブラウズしています。

端末で次のコマンドを使用する場合:w3m <url> -dumpプログラムは、非対話形式でWebサイトを表示しますが、HTMLソースは表示しません。

w3m <url>でWebサイトを開くと、ターミナルにサイトが表示され、vを押すと、プログラムはhtmlを表示しますソース、私はこれをスクリプト化しようとしましたが、成功しませんでした。コマンドライン引数-dump_sourceが助けになると思いましたが、私が手に入れたのは人間以外の読書コンテンツだけです。-dump_sourceが何を返すのかわかりません

ここに私がこれまで試したものがあります:

  • 端末で-T text/htmlとともに-dumpを使用しますが、出力は変更されませんでした
  • -T text/plain-dump_sourceと共に使用して、人間以外の出力がプレーンテキストに変換されることを期待しますが、成功しません(w3mマニュアルを読んでも、-Tの用途がわかりませんでした)端末でman w3mと入力して)
  • W3mがWebサイトのコンテンツをWebページのコンテンツからhtmlソースコードに切り替えて表示しているときにvを押すことを知って、gdbw3mプロセスにアタッチし、そのstdinおよびstdoutinput.txtに単一のvが含まれるファイル(input.txt、output.txt)に、しかし、私は成功しませんでした。テストプログラムでこれを行うと、期待どおりに機能しました。説明されたものに従いました ここls -l /proc/<w3m_pid>/fd(w3m_pidはターミナルでps axを使用して取得したw3mプロセスID)を書き込むと、3つのファイル記述子があることがわかります。3番目の記述子をリダイレクトしようとすると、プログラムがクラッシュしますおよび表示:エラーが発生しました:errorno = 25
  • w3m <url> < input.txt > output.txtを使用した標準I/Oのリダイレクトも機能しませんでした
  • W3Mはキーバインドを使用してWebをナビゲートします。つまり、vを押すとEnterキーを押す必要がなく、端末は入力をバッファリングしません。 w3mプロセスに接続されたgdbを使用して、p system ("/bin/stty cooked")を使用して削除しようとしましたが、w3mキーバインドは変更されませんでした。

私の質問は次のとおりです。gdbを使用したI/Oのリダイレクトが機能しないのはなぜですか。htmlソースコードを取得するためにできることは何ですか。 w3mには、見つからないhtmlソースコードを出力するオプションがありますか、別のプログラムを使用する必要がありますか?

PS:大学の宿題用にHTMLソースコードが必要です。HTMLソースコードを使用すると、Webをブラウズしてページをファイルに出力するスクリプトを作成できます。ウェブ上で、次のように:c言語に関する質問でWordスタックがいくつ表示されますか?これが私の考えです。

任意の提案をいただければ幸いです。

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
6
Anwar