获得多份汤的功能只提供一份汤

Function to get multiple soups only gives one soup

所以我正在尝试创建一个函数来创建多个汤的列表。我开始使用 normal 代码(我不知道如何准确调用它:

list_url = ["http://www.facebook.com", "https://www.google.com", "http://www.yahoo.com"]

list_soup = []
for url in list_url:
    soup = BeautifulSoup(requests.get(url).text, "html.parser")
    list_soup.append(soup)

并且此代码有效,但是当我使用此函数时:

def get_multi_soup(list_url):
    list_multi = []
    for url in list_url:
        soup = BeautifulSoup(requests.get(url).text, "html.parser")
        list_multi.append(soup)
        return list_multi

list_soup = get_multi_soup(list_url)

该代码没有按预期工作,因为它只提供一种汤而不是三种。

有人可以解释为什么这不起作用吗? list_soup只等于一汤

只需将 return 移到 for 循环之外。 您正在 return 进行第一次迭代。

def get_multi_soup(list_url):
    list_multi = []
    for url in list_url:
        soup = BeautifulSoup(requests.get(url).text, "html.parser")
        list_multi.append(soup)
    return list_multi

list_soup = get_multi_soup(list_url)

应该可以解决问题。 :)