Python中的URL Tree Walker?

对于显示文件树的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) 
上一篇:爬网:输出与原始数据不同


下一篇:我如何使用BeautifulSoup插入属性?