So geben Sie den HTML-Quellcode einer Webseite in eine Datei aus

So geben Sie den HTML-Quellcode einer Webseite in eine Datei aus

Mein Ziel ist es, eine HTML-Quelle in eine Datei auszugeben. Ich verwendew3mum vom Terminal aus im Internet zu surfen.

Wenn Sie den folgenden Befehl auf dem Terminal verwenden, w3m <url> -dumpzeigt das Programm die Website auf nicht interaktive Weise an, jedoch nicht deren HTML-Quelle.

Wenn Sie eine Website mit öffnen w3m <url>, zeigt das Terminal die Website an. Wenn Sie drücken,gegen, dann zeigt das Programm die HTML-Quelle an. Ich habe versucht, dies zu skripten, aber ohne Erfolg. Ich dachte, das Befehlszeilenargument -dump_sourcewürde mir helfen, aber das einzige, was ich bekam, war ein nicht von Menschen gelesener Inhalt. Ich weiß nicht, was -dump_sourcezurückgegeben werden sollte

Folgendes habe ich bisher versucht:

  • Verwenden Sie es -T text/htmlmit -dumpdem Terminal, aber die Ausgabe hat sich nicht geändert
  • Verwenden Sie -T text/plaines -dump_sourceauf dem Terminal in der Hoffnung, dass die nicht-menschliche Ausgabe in einfachen Text umgewandelt wird, aber ohne Erfolg (ich habe nicht verstanden, wofür -T verwendet wird, selbst nachdem ich das w3m-Handbuch durch Eintippen man w3mauf dem Terminal gelesen habe).
  • Wissend, dass das Drückengegenwährend w3m eine Webseite anzeigt, wechselt es vom Webseiteninhalt zum HTML-Quellcode. Ich habe versucht,gdbum es an den w3m-Prozess anzuhängen und seinestdinUndstdoutzu meinen Dateien (input.txt, output.txt), wobei input.txt eine einzelnegegen, aber ich hatte keinen Erfolg. Dies bei meinem Testprogramm zu tun, funktionierte wie erwartet. Ich folgte dem, was beschrieben wurdeHier. Wenn ich schreibe ls -l /proc/<w3m_pid>/fd, wobei w3m_pid meine W3M-Prozess-ID ist, die ich durch die Verwendung ps axim Terminal erhalten habe, kann ich sehen, dass es drei Dateideskriptoren gibt. Wenn ich versuche, den dritten umzuleiten, stürzt das Programm ab und zeigt Folgendes an:Es ist ein Fehler aufgetreten: errorno=25
  • Auch die Umleitung der Standard-E/A w3m <url> < input.txt > output.txtfunktionierte nicht.
  • W3M verwendet Tastenkombinationen, um im Web zu navigieren. Das bedeutet, dass Sie, wenn Siegegenes ist nicht nötig, die Eingabetaste zu drücken, das Terminal puffert die Eingabe nicht. Mithilfe von gdb, das an den w3m-Prozess angehängt ist, habe ich versucht, es mithilfe von zu entfernen p system ("/bin/stty cooked"), aber die w3m-Tastenkombination hat sich nicht geändert.

Meine Frage ist: Warum funktioniert die Umleitung von E/A mit gdb nicht und was kann ich tun, um den HTML-Quellcode zu erhalten? W3M: Gibt es eine Option zur Ausgabe des HTML-Quellcodes, die mir fehlt, oder müsste ich ein anderes Programm verwenden?

PS: Ich brauche HTML-Quellcode für eine Uni-Hausaufgabe. Mit HTML-Quellcode kann ich ein Skript zum Surfen im Internet erstellen und die Seite in eine Datei ausgeben. Diese Ausgaben soll ich dann mit Flex verwenden, um statistische Informationen über Dinge im Internet zu extrahieren, z. B.: Wie oft kommt der Wortstapel in Fragen zur Sprache C vor? Das ist meine Idee.

Ich bin für jeden Vorschlag dankbar.

W3M-Version:0.5.3+debian-15

GDB-Version:7.7.1

Ubuntu-Version:14.04

Dank im Voraus!

Antwort1

Warum können Sie nicht verwenden curl?

curl web-address > file-source.

gibt den Quellcode in derfile

So was

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

Antwort2

Dies wurde bereits beantwortet in:https://askubuntu.com/a/1273410/1124534

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

verwandte Informationen