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

Python代码如何添加第二层for循环实现日期与站点嵌套遍历

嵌套循环实现方案

你需要将日期循环作为外层循环,原有的产品站点遍历循环作为内层循环嵌套在日期循环内部,才能保证「选日期→跑完全部站点→切下一个日期→再跑全部站点」的执行顺序,同时需要修正你原有日期代码片段里未实际更新日期值的逻辑问题。

结构逻辑说明

  • 外层循环负责迭代所有日期节点:每轮循环先计算当前节点对应的租赁开始、结束日期,完成日期选定的前置逻辑
  • 内层循环负责同日期下的全站点请求:只有当前日期下所有产品站点的请求全部执行完成,才会进入下一轮外层循环切换日期

修正后完整代码

from datetime import date, timedelta
# 以下driver初始化逻辑按你原有项目配置保留
# driver = webdriver.xxx()

# 你原有的功能函数
def offer(rent_start, rent_end, website):
    driver.get(website[0])
    # 注意:此处需要补充页面上选择租赁起止日期的操作逻辑,将rent_start、rent_end填入对应日期控件
    driver.find_element_by_xpath('//input[@id="btnUpdateQuote"]').click()

# 你原有的产品站点配置
phones = ["https://xxxxxx/", "phones"]
laptops = ["https://xxxxxx/", "laptops"]
headsets = ["https://xxxxxx/", "headsets"]
keyboards = ["https://xxxxxx/", "keyboards"]
websites_list = [phones, laptops, headsets, keyboards]

# 日期基础配置
base_start_date = date(2022, 6, 17)  # 首个租赁开始日期,可按需调整
rent_duration = 2  # 单次租赁时长为2天
date_offset_list = [0, 2, 4, 6]  # 各轮次相对于首日期的偏移天数,实现间隔2天切换的需求

# 外层:日期迭代循环
for day_offset in date_offset_list:
    # 计算当前轮次的实际租赁起止日期
    current_rent_start = base_start_date + timedelta(days=day_offset)
    current_rent_end = current_rent_start + timedelta(days=rent_duration)
    
    # 内层:同日期下遍历所有产品站点
    for website in websites_list:
        offer(current_rent_start, current_rent_end, website)

原有代码问题说明

你之前写的日期循环片段存在逻辑漏洞:循环内仅重复定义了时间差变量,没有基于循环变量动态计算每轮的起止日期,即便套上循环也不会实际切换日期。日期计算逻辑必须放到外层循环内部,每轮生成新的日期值后再传入内层的站点请求逻辑,才能正常运行。

补充提醒:目前你的offer函数中没有填写日期控件的操作,需要补充对应定位、赋值代码,否则传入的日期参数不会在页面上生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:24:18