Beispiel #1
0
def dosoup(page,node,context,sibling=False):

    if (sibling):
        doc = page
    else:
        doc = BeautifulSoup(page)

    soupargs = {}
    args = node.attribute.partition(" ")[2]
    n=0
    if (args):
        soupargs = parseargs(args,context)
        for k in soupargs:
            soupargs[k] = dynamic_core.get_var(soupargs[k],context)
        if 'n' in soupargs.keys():
            n=int(soupargs.get('n',0))
            del soupargs['n']
        elif 'list' in soupargs.keys():
            print "dat list"
            name = node.attribute.partition(" ")[0]
            del soupargs['list']
            return doc.findAll(name,soupargs)

    name = node.attribute.partition(" ")[0]
    if sibling == False:
        if n==0:
            return doc.find(name,soupargs)
        else:
            
            return doc.findAll(name,soupargs)[n]
    else:
        return doc.findNextSiblings(name,soupargs)[n]