Как вывести веб-страницу 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