python - 如何在单个列表索引中对循环元素进行分组
问题描述
我在python中有一个for循环,它使用beautifulsoup从网站中提取数据并将它们附加到一个列表中。我正在尝试从事件名称中抓取标签,例如:AI、大数据、ML 等。
我的代码:
import requests
from bs4 import BeautifulSoup
URL = "https://aiml.events/"
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'lxml')
# Scrape Event Tags
event_tags_list = []
event_tag_div = soup.find_all('div', class_ = 'card-body')
for event_div in event_tag_div:
event_span = event_div.find_all('span', class_ = 'badge badge-light badge-pill')
for event_tags in event_span:
print(event_tags.text)
我能够获取标签,但它们都是独立的。我希望能够将它们组合在一起。目前我的清单是这样的:
tag_list = ['Artificial Intelligence', 'Artificial Intelligence','Machine Learning', 'Healthcare', 'Artificial Intelligence','Public Sector' ]
我的期望:
tag_list = ['Artificial Intelligence', 'Artificial Intelligence,Machine Learning, Healthcare', 'Artificial Intelligence,Public Sector' ]
任何帮助表示赞赏。对不起,如果这个问题太基本了。
解决方案
用您加入字符串的生成器替换内部循环。
for event_div in event_tag_div:
event_span = event_div.find_all('span', class_ = 'badge badge-light badge-pill')
event_tag_list.append(','.join(event_tag.text for event_tag in event_span))
推荐阅读
- android - 升级到 Studio 4.2 Canary 5 后 Android Studio 数据绑定错误
- r - 预测数据帧中的行数不等于馈送到预测函数的新数据帧中的行数
- java - 如何在运行时将字符串解析为 Java 代码并运行它以获得简单的表达式,而不会产生安全问题?
- arrays - 如何在 C 中更改字符串?
- mysql - Calcite Optimize 导致重复的列名错误
- java - 如果另一个文本框已被填充,则需要将光标移动到特定文本框
- linker - libmicrohttpd:链接时未定义对“pthread_setname_np@GLIBC_2.12”的引用
- python - 数据框中的 2 个虚拟变量
- sql - Sql 数据库设计层次结构
- cordova - cordova 支持 OS X 的 localStorage 吗?