Я слышал о lynx, ссылках и других текстовых браузерах, и они в порядке, но я хочу получить ту же информацию, что и при запуске View Page Source в Firefox, например. (IE и Chrome имеют свои аналогичные функции.)

Можно ли просмотреть этот источник через терминал (или CLI), просмотрев страницу в приложении на основе терминала или используя команды? Это не так просто, как использовать wget на странице, так как это не заполняет скриптовую информацию (.cgi, .php, .js и т.д.).

2 ответа2

0

Вероятно, есть два простых способа получить то, что вы хотите (текст, возвращаемый, например, view-source:

Предполагая, что Python установлен, вы можете получать запросы, используя pip (с чем-то вроде python -m pip install requests), или вы можете посетить страницу запросов PyPi.

Обратите внимание, что в любом случае вам нужно потратить некоторое время, чтобы выбрать подходящую строку User-Agent . Вы можете Google "Какова моя строка агента пользователя?" в любом браузере, который вы хотите эмулировать, чтобы увидеть текущую строку User-Agent, связанную с вашим браузером GUI.


Wget

Как предложили @Attie и @ivanivan, wget может получить тот же источник, который отображается в браузере с графическим интерфейсом ex.:

wget -O pagesource.html -U "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0" --no-check-certificate https://www.google.com

В приведенном выше примере -O (опция выходного файла) и -U (опция строки User-Agent) являются ключом для получения того же формата, который вы могли бы иметь, скажем, в Firefox. Этот метод имеет небольшой недостаток, который вам понадобится для отображения ex. pagesource.html в командной строке самостоятельно.


питон

Другой вариант - использовать Python с запросами, как уже упоминалось.

Чтобы получить фактический исходный код страницы, например, с помощью view-source: создайте скрипт, подобный следующему:

import requests

user_agent = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'}
url = 'https://www.google.com'

response = requests.get(url, headers = user_agent)

print(response.text)

Вы сохраняете этот скрипт как что-то вроде pagesource.py, а затем вызываете его из командной строки ex.:

python pagesource.py | more

more просто предотвращает сброс всей страницы сразу. Стоит отметить, что у объектов ответа есть атрибут content (который очень похож на text для наших целей), но text в этом случае более близко имитирует то, что возвращается браузером с графическим интерфейсом при просмотре исходного кода страницы.


Отображение страниц

Это не так просто, как использовать wget на странице, так как это не заполняет скриптовую информацию (.cgi , .php , .js и т.д.).

Страницы, отображаемые с помощью серверных сценариев (.cgi/.php в вашем вопросе), имеют исходный код, сгенерированный в виде текста (например, .html и JavaScript) перед передачей в браузер.

С JavaScript браузер обрабатывает любой Javascript в конечную визуализированную страницу (нет промежуточной формы). Браузер фактически изменяет код страницы в этих случаях (он изменяет то, что вы видите в view-source: . Аналогично, браузер предпринимает дополнительные действия для перехода по ссылкам и загрузки необходимых ресурсов (например, .css , медиа-файлы и т.д.) Для окончательного отображения.

Это означает, что то, что вы видите в "источнике страницы" браузера (в общем случае), именно то, что браузер использует для первоначальной визуализации страницы. Если .html ссылка на элемент (например, изображение или видео) не существует, она не существует (хотя это не обязательно препятствует тому, чтобы какой-либо код JavaScript был информативным).

Тем не менее, вы можете принять к сведению и поэкспериментировать с различными строками User-Agent. Серверы, которые динамически генерируют контент, часто делают это на основе этих строк. Следовательно, теоретически возможно, что страница может генерировать более традиционные ссылки на ресурсы по сравнению с кодом JavaScript на основе, например, мобильного браузера или строки браузера на рабочем столе.

0

Многие браузеры CLI/TUI имеют встроенную возможность просмотра исходного кода. В Lynx или Links привязка клавиш для просмотра источника - \. В w3m это v. Для других браузеров смотрите соответствующую документацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .