如何从远程服务器获取文件目录?

3 投票
2 回答
3860 浏览
提问于 2025-04-15 15:48

如果我在一个远程的网络服务器上有一个可以浏览的文件夹,我该怎么从我的另一个网络服务器上获取里面列出的所有文件呢?我知道可以用urllib2.urlopen来获取单个文件,但我该如何获取那个远程文件夹里所有文件的列表呢?

2 个回答

2

你为什么不使用 curlwget 来递归下载指定的页面,并限制下载到1级呢?这样你就不用费心去写脚本了。

比如可以这样做:

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

如果网站的服务器开启了目录浏览功能,它会返回一个包含所有文件链接的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)

撰写回答