Вероятно, есть два простых способа получить то, что вы хотите (текст, возвращаемый, например, view-source:
)
wget (доступно в Windows с пакетом wget GnuWin32 ).
Python со сторонним модулем Requests (оба работают и в Windows).
Предполагая, что 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 на основе, например, мобильного браузера или строки браузера на рабочем столе.