Как вывести исходный код 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, даже после прочтения руководства w3m, набрав его man w3mв терминале)
  • Зная, что нажатиевпока w3m отображает переключение веб-сайта с содержимого веб-страницы на исходный код HTML, я попытался использоватьгдбчтобы присоединить его к процессу w3m и перенаправить егостандартный вводистандартный выводв мои файлы (input.txt, output.txt), где input.txt содержит одинв, но у меня не получилось. Выполнение этого на моей тестовой программе сработало как и ожидалось. Я следовал тому, что было описаноздесь. Если я напишу ls -l /proc/<w3m_pid>/fd, где w3m_pid — это мой идентификатор процесса w3m, который я получил с помощью ps axтерминала, я увижу, что есть 3 файловых дескриптора, если я попытаюсь перенаправить третий, программа аварийно завершит работу и отобразит:Произошла ошибка: errorno=25
  • Перенаправление стандартного ввода-вывода w3m <url> < input.txt > output.txtтакже не сработало
  • W3M использует сочетание клавиш для навигации в Интернете. Это означает, что если вы нажметевнет необходимости нажимать Enter, терминал не буферизует ввод, используя gdb, присоединенный к процессу w3m, я попытался удалить его с помощью p system ("/bin/stty cooked"), но привязка клавиш w3m не изменилась.

У меня вопрос: почему перенаправление ввода-вывода с помощью gdb не работает и что я могу сделать, чтобы получить исходный код HTML? В w3m есть возможность выводить исходный код HTML, которой у меня нет, иначе мне пришлось бы использовать другую программу?

PS: Мне нужен исходный код HTML для университетского домашнего задания, с исходным кодом HTML я могу создать скрипт для просмотра веб-страниц и вывода страницы в файл, затем я должен использовать эти выходные данные с Flex для извлечения статической информации о вещах в Интернете, например: сколько раз слово stack встречается в вопросах по языку C? Это моя идея.

Мы ценим любые предложения.

Версия 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

Связанный контент