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

使用Selenium无法筛选含MUST TRY标签的菜品,返回全部菜品如何解决?

错误原因

你现有代码的筛选逻辑存在两个问题:

  • XPath路径写法错误://div[contains(text(),'MUST TRY')] 开头的//代表从整个页面根节点开始检索,只要页面存在任意一个带MUST TRY标识的元素,所有菜品的判断结果都为真,自然会输出全部菜品
  • 直接调用find_element检索不存在的元素时会抛出异常,无法走到else分支

修正后的代码

把需要修改的判断逻辑替换为以下内容即可:

# 先统一获取所有菜品容器,弃用旧版本已废弃的find_elements_by_xpath写法
dish_divs = driver.find_elements(By.XPATH, "//div[@class = 'sc-1s0saks-11 cYGeYt']")
for item in dish_divs:
    # XPath加.前缀限定只在当前菜品节点内搜索,用find_elements避免抛异常
    must_try_tags = item.find_elements(By.XPATH, ".//div[contains(text(),'MUST TRY')]")
    if must_try_tags:
        name = item.find_element(By.CSS_SELECTOR,'h4.sc-1s0saks-15.iSmBPS')
        print(name.text)
driver.close()

运行后就只会输出带MUST TRY标识的菜品名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:18:02