【问题标题】:How to retrieve a directory of files from a remote server?如何从远程服务器检索文件目录?
【发布时间】:2009-11-09 07:55:04
【问题描述】:

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

【问题讨论】:

  • 你打算使用什么协议?

标签: python file directory screen-scraping


【解决方案1】:

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

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

    例如像

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

    【讨论】:

    • 我想在我的 Python 代码中使用检索到的文件,所以编写脚本对我来说更容易。
    猜你喜欢
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多