对于显示文件树的URL,例如Pypi packages,
是否有一个小的实体模块来遍历URL树并像ls -lR一样列出它?
我收集(纠正我的意思)没有文件属性的标准编码,
html< A属性中的链接类型,大小,日期...
因此,在流沙之上构建可靠的URLtree模块非常困难.
但可以肯定,这个*(Unix文件树-> html-> treewalk API-> ls -lR或查找)
已经完成?
(那里似乎有几个蜘蛛/网络爬虫/刮刀,但到目前为止,尽管BeautifulSoup可以解析,但它们看起来很丑陋且特别))
解决方法:
Apache服务器非常普遍,它们具有列出文件目录的相对标准的方式.
这是一个足够简单的脚本,可以执行您想要的操作,您应该能够使它执行所需的操作.
用法:python list_apache_dir.py
import sys
import urllib
import re
parse_re = re.compile('href="([^"]*)".*(..-...-.... ..:..).*?(\d+[^\s<]*|-)')
# look for a link + a timestamp + a size ('-' for dir)
def list_apache_dir(url):
try:
html = urllib.urlopen(url).read()
except IOError, e:
print 'error fetching %s: %s' % (url, e)
return
if not url.endswith('/'):
url += '/'
files = parse_re.findall(html)
dirs = []
print url + ' :'
print '%4d file' % len(files) + 's' * (len(files) != 1)
for name, date, size in files:
if size.strip() == '-':
size = 'dir'
if name.endswith('/'):
dirs += [name]
print '%5s %s %s' % (size, date, name)
for dir in dirs:
print
list_apache_dir(url + dir)
for url in sys.argv[1:]:
print
list_apache_dir(url)