Как вывести веб-страницу HTML исходного кода в файл

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

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

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

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

Версия W3M: 0.5.3 + debian-15

Версия GDB: 7.7.1

Версия Ubuntu: 14.04

Заранее спасибо!

2 ответа

Решение

Почему ты не можешь использовать curl?

curl web-address > file-source.

выведет исходный код в file

Как это

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

На это уже был дан ответ: /questions/55457/w3m-charset-sourcedump-ne-rabotaet-pravilno/842899#842899

      w3m -o accept_encoding=UTF-8 -dump_source google.com >file
Другие вопросы по тегам