代码之家  ›  专栏  ›  技术社区  ›  Tom van Enckevort

如何从远程服务器检索文件目录?

  •  3
  • Tom van Enckevort  · 技术社区  · 15 年前

    如果我在远程web服务器上有一个允许目录浏览的目录,我将如何从我的其他web服务器获取列出的所有文件?我知道我可以使用urllib2.urlopen获取单个文件,但是如何获取远程目录中所有文件的列表?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Ahasanul Haque    9 年前

    如果Web服务器启用了目录浏览,它将返回一个包含所有文件链接的HTML文档。您可以解析HTML文档并提取所有链接。这将为您提供文件列表。

    你可以使用 HTMLParser 类来提取您感兴趣的元素。类似这样的方法会奏效:

    from HTMLParser import HTMLParser
    import urllib
    
    class AnchorParser(HTMLParser):
        def handle_starttag(self, tag, attrs):
                if tag =='a':
                        for key, value in attrs.iteritems()):
                                if key == 'href':
                                        print value
    
    parser = AnchorParser()
    data = urllib.urlopen('http://somewhere').read()
    parser.feed(data)
    
        2
  •  2
  •   Anurag Uniyal    15 年前

    你为什么不使用 curl wget 递归下载给定页面,并将其限制为1级。你将省去写剧本的所有麻烦。

    wget -H -r --level=1 -k -p www.yourpage/dir