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

Selenium Chromedriver设备型号提取与列表比对技术咨询

解决设备型号提取与列表比对问题

嘿,我看到你在用Selenium做自动化时遇到了两个小问题:从冗余的设备类型文本里提取G930型号,还有把提取结果和列表做比对。这俩问题都有很直接的解决办法,我来给你一步步讲:

一、从device_type中提取G930

你给出的示例文本是(Samsung SM-G930F Fekete - BLACK ),里面的G930是很有规律的——跟着SM-前缀,是G开头加三位数字的格式。这种固定模式的内容提取,用正则表达式最方便:

首先要导入Python的re模块,然后用re.search()精准匹配我们要的部分:

import re

# 先获取device_type的文本内容
device_type = driver.find_element(By.XPATH, '//*[@id="adatok_table"]/tbody/tr[8]/td[2]').get_attribute("textContent")

# 用正则匹配"SM-"后面的G+三位数字
match = re.search(r'SM-(G\d{3})', device_type)
if match:
    # 从捕获组里拿到我们要的*G930*
    extracted_model = match.group(1)
else:
    # 处理文本格式不符合预期的情况
    extracted_model = None
    print("没找到符合格式的设备型号哦")

这里的正则r'SM-(G\d{3})'可以拆解成:

  • SM-:匹配固定的前缀字符串
  • (G\d{3}):一个捕获组,专门抓字母G后面跟着3个数字的部分,也就是我们要的G930型号

二、和目标列表做比对

拿到提取后的extracted_model,用Python自带的in运算符就能快速判断它是否在你的目标列表里:

# 假设这是你要比对的目标型号列表
target_models = ["G930", "G950", "G960", "G975"]

# 先确保我们成功提取到了型号,再做比对
if extracted_model:
    if extracted_model in target_models:
        print(f"太棒了!型号 {extracted_model} 在目标列表里")
        # 这里可以加匹配成功后的操作,比如写入文件或者执行下一步自动化
    else:
        print(f"型号 {extracted_model} 不在目标列表中")
        # 处理未匹配的逻辑,比如记录日志或者跳过当前设备
else:
    print("没法比对啦,因为没提取到有效型号")

如果担心文本大小写问题(比如万一拿到的是g930),可以统一转成大写再比对:

# 统一转成大写后比对
if extracted_model.upper() in [m.upper() for m in target_models]:
    # 匹配逻辑
    pass

额外小建议

如果后续遇到device_type的格式有变化(比如前缀不是SM-),可以灵活调整正则。比如不管前缀是什么,只想抓所有G开头加三位数字的内容,正则可以改成r'G\d{3}',然后用match.group()获取结果就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:20:45