1

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

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

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

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

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

2 ответа2

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 из предыдущего ответа, вам нужно скачать и установить его.

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