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

时间:2009-11-09 07:55:05

标签: python file directory screen-scraping

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

2 个答案:

答案 0 :(得分:6)

如果网络服务器启用了目录浏览,它将返回一个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)

答案 1 :(得分:2)

为什么不使用curlwget递归下载给定页面,并将其限制为1级。您将节省编写脚本的所有麻烦。

e.g。

之类的东西
wget -H -r --level=1 -k -p www.yourpage/dir