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

Python使用BeautifulSoup批量提取li标签中optionid属性的方法

解决方案

BeautifulSoup 实现

调用find_all('li')返回的ResultSet属于类列表的可迭代对象,仅单个Tag元素支持find()方法或属性读取,直接对集合调用方法会触发属性不存在报错。
要批量提取索引1~14范围的optionid,直接对ResultSet做切片遍历即可:

from bs4 import BeautifulSoup

# 假设已完成页面请求解析拿到soup对象
li_list = soup.find_all('li')
option_ids = []

# Python切片为左闭右开规则,取索引1到14对应切片范围为[1:15]
for li in li_list[1:15]:
    # 先判断标签是否存在optionid属性,避免抛出KeyError
    if 'optionid' in li.attrs:
        raw_id = li['optionid']
        # 去除option_前缀,也可使用raw_id.split('_')[-1]适配前缀波动场景
        pure_id = raw_id.replace('option_', '')
        option_ids.append(pure_id)

# 后续f-string拼接示例
for id in option_ids:
    target_url = f"你的目标请求规则前缀{id}"
    # 后续数据请求逻辑

Selenium 实现

如果使用Selenium做页面爬取,逻辑和BeautifulSoup一致,仅元素属性读取API有差异:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
# 假设已完成目标页面加载
li_elements = driver.find_elements(By.TAG_NAME, 'li')
option_ids = []

for li in li_elements[1:15]:
    raw_id = li.get_attribute('optionid')
    if raw_id: # 过滤不存在该属性的元素
        pure_id = raw_id.replace('option_', '')
        option_ids.append(pure_id)

driver.quit()

内容的提问来源于stack exchange,提问作者Bhavya Lodaya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:15:03