Como observado, você poderia usar o item Content-Length
de um cabeçalho HTTP. Várias ferramentas podem obter as informações do cabeçalho, por exemplo,
$ 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
No entanto, você ainda terá que recuperar uma determinada página da web para extrair URLs dela. O Lynx fornece uma lista no final de um despejo, por exemplo,
$ 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/
Juntando tudo isso, seria possível escrever um script que recuperasse URLs de uma página, depois passasse pela lista de URLs referenciados, primeiro fazendo uma "cabeça" (provavelmente mais rápida do que lendo toda a página referenciada), inspecionando tanto o Content-Length
e Content-Type
para ver se essa informação está disponível e, em caso afirmativo, se ela aponta para outra página da Web para rastrear.
Para referência:
-
Definições de campo de cabeçalho HTTP / 1.1
- Referência rápida a cabeçalhos HTTP
- Guia do usuário do Lynx
- manual da cURL
- wget manual
Como você deseja apenas tamanhos , seu script pode simplesmente usar as informações de cabeçalho quando aponta para itens não HTML em que o comprimento do conteúdo é conhecido.