Как узнать размер для сайта?

1

Я хотел бы знать размер документов, размещенных на веб-сайте.

Решением может быть загрузка всего содержимого этого веб-сайта с помощью таких инструментов, как wget -r. Тем не менее, этот конкретный веб-сайт содержит много огромных файлов, и объем данных, вероятно, превышает 3To. Я не могу позволить себе использовать такую ​​пропускную способность и размещать так много данных.

Вторым решением может быть подключение по FTP по этому сайту. Но у меня нет доступа по FTP к этому серверу.

Есть ли другое решение моей проблемы? Подводя итог, я хочу знать, насколько большой каталог размещен на веб-сайте, и у меня есть только разрешения на чтение и просмотр.

PS: я использую Linux (Debian) и приветствую, в частности, каждое совместимое с ним решение.

имп
источник
2
Вы можете использовать HTTP- HEADзапросы и просматривать заголовок Content-Length в ответе, но не все веб-серверы содержат эту информацию, особенно для динамического контента. Вам также необходимо знать, какие именно URL запрашивать.
CVN

Ответы:

1

Как уже отмечалось, вы можете использовать Content-Lengthэлемент из заголовка HTTP. Различные инструменты могут получить информацию заголовка, например,

$ lynx -dump -head http://localhost
HTTP/1.1 200 OK
Date: Wed, 18 Nov 2015 11:21:40 GMT
Server: Apache
Last-Modified: Sun, 10 Nov 2013 20:02:38 GMT
ETag: "bf2-4ead818dfd380"
Accept-Ranges: bytes
Content-Length: 3058
MS-Author-Via: DAV
Content-Type: text/html
Connection: close

Однако вам все равно придется извлечь данную веб-страницу, чтобы извлечь из нее URL-адреса. Lynx дает список в конце дампа, например,

$ lynx -dump http://localhost
...
References

   1. http://localhost/NetBeans-ROR-plugin/updates/updates.xml
   2. http://localhost/webcal
   3. http://localhost/changepassword
   4. http://localhost/profilemanager
   5. http://www.apple.com/server/

Собираем их вместе, можно было бы написать сценарий , который извлекается URL - адреса со страницы, а затем шел по списку ссылочных URL - адресов, первым делать «голова» (вероятно , быстрее , чем чтение всей ссылки страницы), проверяя как Content-Lengthи Content-Typeк проверить, доступна ли эта информация, и если да, указывает ли она на другую веб-страницу для просмотра.

Для справки:

Поскольку вам нужны только размеры , ваш сценарий может просто использовать информацию заголовка, когда он указывает на элементы, отличные от HTML, где длина содержимого известна.

Томас Дики
источник
0

Используйте curl с -Iопцией, чтобы получить только заголовок ответа (т.е. без загрузки файла)

$ curl -sI REMOTE_FILE_LOCATION | grep Content-Length

или если вы хотите извлечь только номер

$ curl -sI REMOTE_FILE_LOCATION | grep Content-Length | cut -d' ' -f2

curlобычно устанавливается по умолчанию в Linux, поэтому вам не нужно его устанавливать. Чтобы использовать lynxпредыдущий ответ, вам нужно скачать и установить его.

Джон Смит
источник