Если я пробую wget на веб-странице, я получаю страницу как html. Возможно ли получить только текст файла без связанного html? (Это необходимо для меня, так как некоторые HTML-страницы содержат программу c, которая загружается с тегами html. Мне приходится открывать ее в браузере и вручную копировать текст, чтобы создать файл .c.)
решение1
wget
только извлечет документ. Если документ в формате HTML, то вам нужен результат разбора документа.
Например, вы можете использовать lynx -dump -nolist
, если у вас поблизости есть рысь.
lynx
— это легкий и простой веб-браузер, имеющий функцию -dump
, используемую для вывода результата процесса синтаксического анализа. -nolist
позволяет избежать списка ссылок в конце, который появится, если на странице есть какие-либо гиперссылки.
Как упомянул @Thor, elinks
может использоваться и для этого, так как у него также есть -dump
опция (и он должен -no-references
опустить список ссылок). Это может быть особенно полезно, если вы ходите по какому-то сайту, используя -sigh- фреймы (MTFBWY).
Кроме того, имейте в виду, что если страница на самом деле не представляет собой просто код C с тегами HTML, вам нужно будет проверить результат, чтобы убедиться, что там нет ничего, кроме кода C.
решение2
Если у вас не установлены эти инструменты, а только wget, и на странице нет форматирования, только простой текст и ссылки, например, исходный код или список файлов, вы можете очистить HTML с помощью sed следующим образом:
wget -qO- http://address/of/page/you/want/to/view/ | sed -e 's/<[^>]*>//g'
Здесь wget используется для выгрузки исходного кода страницы в STDOUT, а sed — для удаления всех пар < > и всего, что находится между ними.
Затем вы можете перенаправить вывод команды sed в файл, который вы хотите создать, используя >:
wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt
Примечание: Вы можете обнаружить, что в файле есть лишние пробелы, которые вам не нужны (например, строки смещены на несколько столбцов).
Возможно, проще всего будет воспользоваться текстовым редактором, чтобы привести файл в порядок (или средством форматирования исходного кода, если вы загружаете исходный код на языке C).
Если вам нужно сделать то же самое простое действие с каждой строкой файла, вы можете включить команду для этого в команду sed (здесь удаляется один начальный пробел):
wget -qO- http://.../ | sed -e 's/<[^>]*>//g;s/^ //g' > downloaded_stripped_file.txt
решение3
просто чтобы добавить еще один инструмент. Я предпочитаю w3m
, который является lynx
как бы консольным браузером. Вы можете проверить, что уже доступно в вашей системе.
w3m -dump website.html