2009-11-09 141 views
3

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

+0

你打算使用哪种协议? – 2009-11-09 08:25:44

回答

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) 
+0

这的确有诀窍。感谢您的建议! – 2009-11-09 09:15:34

2

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

例如像

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

我想在我的Python代码中使用检索到的文件,因此我更容易对其进行编写。 – 2009-11-09 08:52:47

相关问题