Я хотел бы знать размер документов, размещенных на веб-сайте.
Решением может быть загрузка всего содержимого этого веб-сайта с помощью таких инструментов, как wget -r
. Тем не менее, этот конкретный веб-сайт содержит много огромных файлов, и объем данных, вероятно, превышает 3To. Я не могу позволить себе использовать такую пропускную способность и размещать так много данных.
Вторым решением может быть подключение по FTP по этому сайту. Но у меня нет доступа по FTP к этому серверу.
Есть ли другое решение моей проблемы? Подводя итог, я хочу знать, насколько большой каталог размещен на веб-сайте, и у меня есть только разрешения на чтение и просмотр.
PS: я использую Linux (Debian) и приветствую, в частности, каждое совместимое с ним решение.
HEAD
запросы и просматривать заголовок Content-Length в ответе, но не все веб-серверы содержат эту информацию, особенно для динамического контента. Вам также необходимо знать, какие именно URL запрашивать.Ответы:
Как уже отмечалось, вы можете использовать
Content-Length
элемент из заголовка HTTP. Различные инструменты могут получить информацию заголовка, например,Однако вам все равно придется извлечь данную веб-страницу, чтобы извлечь из нее URL-адреса. Lynx дает список в конце дампа, например,
Собираем их вместе, можно было бы написать сценарий , который извлекается URL - адреса со страницы, а затем шел по списку ссылочных URL - адресов, первым делать «голова» (вероятно , быстрее , чем чтение всей ссылки страницы), проверяя как
Content-Length
иContent-Type
к проверить, доступна ли эта информация, и если да, указывает ли она на другую веб-страницу для просмотра.Для справки:
Поскольку вам нужны только размеры , ваш сценарий может просто использовать информацию заголовка, когда он указывает на элементы, отличные от HTML, где длина содержимого известна.
источник
Используйте curl с
-I
опцией, чтобы получить только заголовок ответа (т.е. без загрузки файла)или если вы хотите извлечь только номер
curl
обычно устанавливается по умолчанию в Linux, поэтому вам не нужно его устанавливать. Чтобы использоватьlynx
предыдущий ответ, вам нужно скачать и установить его.источник