python - 获得多种汤的功能只提供一种汤
问题描述
所以我正在尝试创建一个创建多个汤列表的函数。我从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 循环之外。您将返回第一次迭代。
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)
应该做的伎俩。:)
推荐阅读
- python - 正则表达式从字符串中查找日期格式
- php - 如何解决 WordPress 上传期间的“找不到临时文件夹”错误
- sql-server - 获取 SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。Sybase DB 上的错误代码 0x80004005 到文件提取
- validation - Partial Class-Checkmarx 漏洞中的“仅客户端验证” - 修复
- javascript - console.log("Result" +vaRiable) 和 console.log("Result", vaRiable) 有什么区别?
- rust - yew app - rustwasm 错误 Uncaught RangeError: 超出最大调用堆栈大小
- swiftui - 如何延迟 SwiftUI 的 SecureField 中字符的模糊/屏蔽,以便每个键入的字符在隐藏之前显示约 1 秒?
- python - 用户输入的值成为更改数据框列中值的函数的一部分?
- c - C 哈希表实现——意外行为
- transactions - 锁定具有多个服务器的 Web 应用程序