获得多份汤的功能只提供一份汤
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)
应该可以解决问题。 :)
所以我正在尝试创建一个函数来创建多个汤的列表。我开始使用 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)
应该可以解决问题。 :)