You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Beautiful Soup提取每个li标签data-gs-ta-val中的slug值

使用Beautiful Soup提取HTML中li标签的slug值

需求说明

从以下HTML片段里,提取每个class为gs_ta_choice的<li>标签中,data-gs-ta-val属性里的slug字段值:

<li class="gs_ta_choice" data-value="Bangalore" data-gs-ta-val="{'text':'Bangalore','value':'Bangalore','CID':'105','id':'105','P':'1','slug':'bangaluru'}" style="line-height: initial;"> Bangalore</li>
<li class="gs_ta_choice" data-value="Bangalore" data-gs-ta-val="{'text':'Chennai','value':'Chennai','CID':'106','id':'106','P':'2','slug':'madras'}" style="line-height: initial;"> Chennai</li>
<li class="gs_ta_choice" data-value="Bangalore" data-gs-ta-val="{'text':'Mumbai','value':'Mumbai','CID':'108','id':'108','P':'3','slug':'bombay'}" style="line-height: initial;"> Mumbai</li>

实现步骤与代码

  1. 导入BeautifulSoup和ast模块(用ast.literal_eval安全解析单引号格式的字典字符串,比直接替换引号更可靠)。
  2. 解析HTML内容,定位所有目标<li>标签。
  3. 遍历标签,提取属性内容并解析为字典,最终取出slug值。

完整代码示例:

from bs4 import BeautifulSoup
import ast

# 给定的HTML内容
html_content = '''
<li class="gs_ta_choice" data-value="Bangalore" data-gs-ta-val="{'text':'Bangalore','value':'Bangalore','CID':'105','id':'105','P':'1','slug':'bangaluru'}" style="line-height: initial;"> Bangalore</li>
<li class="gs_ta_choice" data-value="Bangalore" data-gs-ta-val="{'text':'Chennai','value':'Chennai','CID':'106','id':'106','P':'2','slug':'madras'}" style="line-height: initial;"> Chennai</li>
<li class="gs_ta_choice" data-value="Bangalore" data-gs-ta-val="{'text':'Mumbai','value':'Mumbai','CID':'108','id':'108','P':'3','slug':'bombay'}" style="line-height: initial;"> Mumbai</li>
'''

# 解析HTML
soup = BeautifulSoup(html_content, 'html.parser')

# 找到所有class为gs_ta_choice的li标签
li_tags = soup.find_all('li', class_='gs_ta_choice')

# 提取每个标签的slug值
slug_list = []
for tag in li_tags:
    # 获取data-gs-ta-val属性值
    data_val = tag.get('data-gs-ta-val')
    # 解析为字典
    data_dict = ast.literal_eval(data_val)
    # 提取slug并添加到列表
    slug_list.append(data_dict['slug'])

# 输出结果
print(slug_list)

运行结果

执行代码后,会输出:

['bangaluru', 'madras', 'bombay']

内容的提问来源于stack exchange,提问作者kishor khade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:32:39