Python 将map()对象作为一个参数返回

Python 将map()对象作为一个参数返回,python,web-scraping,lambda,beautifulsoup,Python,Web Scraping,Lambda,Beautifulsoup,我试图使用Beauty Soup库迭代下载的HTML代码,以提取特定的文本元素。我要获取的特定元素需要一个嵌套的for循环,以确保得到正确的元素。 以下是当前代码: elist = [] if package.find('div', class_='kernel'): for g in package.find_all('div', class_='kernel'): for h in g.find_all('pre', class_='screen'):

我试图使用Beauty Soup库迭代下载的HTML代码,以提取特定的文本元素。我要获取的特定元素需要一个嵌套的for循环,以确保得到正确的元素。
以下是当前代码:

elist = []
if package.find('div', class_='kernel'):
    for g in package.find_all('div', class_='kernel'):
        for h in g.find_all('pre', class_='screen'):
            elist.extend(h.find('code', class_='literal'))

我的问题是,是否可以使用map()函数缩短此代码(甚至可能将其转换为一行代码)? 我试过这样的方法:

elist1 = list(map(lambda x: x if package.find('div', class_='kernel') else None, package.find_all('div', class_='kernel')))
但是我需要使用Beautiful Soup
find_all
方法迭代返回值
elist1
,以提取正确的元素


是否有任何方法可以将map()对象作为可编辑类返回?

您可以使用CSS选择器:

elist=package.select(“div.kernel pre.screen code.literal”)

例如,如果
不存在,则返回空的
ResultSet

返回文本及其外部HTML标记
所需文本
,是否有方法只返回内部文本?@Maslin use
.text
.get\u text()
方法..text和.get\u text()无法处理列表,但使用map对其进行迭代会返回所需的列表。