【发布时间】:2009-11-09 07:55:04
【问题描述】:
如果我在远程 Web 服务器上有一个允许目录浏览的目录,我将如何从我的其他 Web 服务器获取那里列出的所有文件?我知道我可以使用 urllib2.urlopen 来获取单个文件,但是如何获取该远程目录中所有文件的列表?
【问题讨论】:
-
你打算使用什么协议?
标签: python file directory screen-scraping
如果我在远程 Web 服务器上有一个允许目录浏览的目录,我将如何从我的其他 Web 服务器获取那里列出的所有文件?我知道我可以使用 urllib2.urlopen 来获取单个文件,但是如何获取该远程目录中所有文件的列表?
【问题讨论】:
标签: python file directory screen-scraping
如果网络服务器启用了目录浏览,它将返回一个 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)
【讨论】: