我的问题类似于描述here,但有点复杂。有BeautifulSoup对象(存储在列表中),我想找到一些其他标签。我想要查找的标签信息存储在字符串中。 即:
a= [...] #(list of BeautifulSoup objects)
next="findNext('span')"
b=[ getattr(c,next).string for c in a]
不起作用。我做错了什么。
答案 0 :(得分:1)
让我觉得你想要的是:
b = [ eval("c." + next).string for c in a ]
这将为列表findNext('span')
的每个元素c
调用a
,并在列表findNext
中形成每个b
调用的结果列表
答案 1 :(得分:0)
尝试
trees = [...] #(list of BeautifulSoup objects)
strings = [tree.findNext('span').string for tree in trees]
或者,如果你真的必须,
trees = [...] #(list of BeautifulSoup objects)
next = ('findNext', ('span',))
strings = [getattr(tree, next[0])(*(next[1])).string for tree in trees]
所以我想下一个问题是,将"findNext('span')"
转换为('findNext', ('span',))
的简单方法是什么(请记住可能有多个参数)?