python - 在 soup.find_all() 中的每个文本后添加一个逗号
问题描述
汤=soup.find_all('tr'):
[<tr data-row="0"><th class="left " csk="Murray,Jamal" data-append-
csv="murraja01" data-stat="player" scope="row"><a
href="/players/m/murraja01.html">Jamal Murray</a></th><td class="right "
csk="2713" data-stat="mp">45:13</td><td class="right " data-
stat="fg">5</td><td class="right " data-stat="fga">12</td><td class="right
" data-stat="fg_pct">.417</td><td class="right " data-stat="fg3">3</td><td
class="right " data-stat="fg3a">6</td><td class="right " data-
stat="fg3_pct">.500</td><td class="right " data-stat="ft">2</td><td
class="right " data-stat="fta">2</td><td class="right " data-
stat="ft_pct">1.000</td><td class="right " data-stat="orb">1</td><td
class="right " data-stat="drb">3</td><td class="right " data-
stat="trb">4</td><td class="right " data-stat="ast">5</td><td class="right
" data-stat="stl">1</td><td class="right " data-stat="blk">1</td><td
class="right " data-stat="tov">5</td><td class="right " data-
stat="pf">1</td><td class="right " data-stat="pts">15</td><td class="right
" data-stat="plus_minus">+6</td></tr>]
[x.text for x in soup.find_all('tr', {'data-row':0})]:
['Jamal Murray45:13512.41736.500221.0001345115115+6']
预期清单:
['Jamal Murray', '45.13', '5','12','.417','3','6','0.500','2','2','1.000','1','3','4','5','1','1,'5','1','15','+6']
如何在每个th标记的每个文本之后添加一个逗号,以创建一个类似于上面预期列表的列表?
解决方案
from bs4 import BeautifulSoup as bs
html = '''<tr data-row="0"><th class="left " csk="Murray,Jamal" data-append-
csv="murraja01" data-stat="player" scope="row"><a
href="/players/m/murraja01.html">Jamal Murray</a></th><td class="right "
csk="2713" data-stat="mp">45:13</td><td class="right " data-
stat="fg">5</td><td class="right " data-stat="fga">12</td><td class="right
" data-stat="fg_pct">.417</td><td class="right " data-stat="fg3">3</td><td
class="right " data-stat="fg3a">6</td><td class="right " data-
stat="fg3_pct">.500</td><td class="right " data-stat="ft">2</td><td
class="right " data-stat="fta">2</td><td class="right " data-
stat="ft_pct">1.000</td><td class="right " data-stat="orb">1</td><td
class="right " data-stat="drb">3</td><td class="right " data-
stat="trb">4</td><td class="right " data-stat="ast">5</td><td class="right
" data-stat="stl">1</td><td class="right " data-stat="blk">1</td><td
class="right " data-stat="tov">5</td><td class="right " data-
stat="pf">1</td><td class="right " data-stat="pts">15</td><td class="right
" data-stat="plus_minus">+6</td></tr>'''
data = []
page = bs(html, 'html.parser')
data.append(page.find('th').text.strip())
for item in page.find_all('td'):
data.append(item.text)
print(data)
Output:
['Jamal Murray', '45:13', '5', '12', '.417', '3', '6', '.500', '2', '2', '1.000', '1', '3', '4', '5', '1', '1', '5', '1', '15', '+6']
推荐阅读
- python - 为什么我需要转换 copy.deepcopy 的结果?
- c++ - 如何解决错误“C++ 中未定义的引用?
- javascript - 表格 tbody 中没有任何内容打印到屏幕上
- python-3.x - settings.DATABASES 配置不正确”运行检查数据库时出现错误 django 3.1
- java - 无法在 C:Program Files/apache-tomcat-8.5.57/conf 加载 Tomcat 服务器配置
- c++ - 使用 RAWVIDEO 编解码器和 RGB24 编码未压缩的 avi
- python - 不确定如何配置 WSGI 处理程序/Flask 以在 Python/App Engine 中启用 cron 作业
- typescript - VS Code 中多行字符串中的代码补全
- python - 如何在 Django 中使用切片过滤器?
- mysql - 将 JSON 数组附加到现有 JSON 列