A solução abaixo só funcionará para um índice de diretório padrão não formatado, com apache2
. Você pode wget
do arquivo de índice e analisá-lo com grep
e cut
, por exemplo:
#this will download the directory listing index.html file for /folder/
wget the.server.ip.address/folder/
#this will grep for the table of the files, remove the top line (parent folder) and cut out
#the necessary fields
grep '</a></td>' index.html | tail -n +2 | cut -d'>' -f7 | cut -d'<' -f1
Por favor note, como mencionado acima, isso só funcionará se a listagem do diretório for gerada por um servidor apache2
com opções básicas, configuradas como:
<Directory /var/www/html/folder>
Options +Indexes
AllowOverride None
Allow from all
</Directory>
Nesta configuração, o wget
retornará um index.html
sem qualquer formatação específica, mas é claro que a listagem de diretórios também pode ser personalizada com opções:
IndexOptions +option1 -option2 ...
Para oferecer uma resposta mais precisa, adequada ao seu caso, se isso for específico, precisaríamos de um exemplo de arquivo index.html
.
E aqui também é uma versão do Python:
from bs4 import BeautifulSoup
import requests
def get_listing() :
dir='http://cdimage.debian.org/debian-cd/8.4.0-live/amd64/iso-hybrid/'
for file in listFD(dir):
print file.split("//")[2]
def listFD(url, ext=''):
page = requests.get(url).text
print page
soup = BeautifulSoup(page, 'html.parser')
return [url + '/' + node.get('href') for node in soup.find_all('a') if node.get('href').endswith(ext)]
def main() :
get_listing()
if __name__=='__main__' :
main()
Usado como um guia esta página .