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

Python爬虫如何实现1/7/14/28天间隔的日期循环爬取

多间隔日期爬取逻辑实现方法

直接在外层新增爬取间隔的遍历循环,把所有依赖间隔值计算的日期逻辑移入循环内部即可,不需要改动原有爬取函数和站点遍历的核心逻辑。

核心修改点

  • 把需要用到的4个间隔值整理为列表:[1, 7, 14, 28],作为外层循环的遍历对象
  • 将days、returndate、Hire_Start、Hire_End这几个和日期间隔绑定的变量,全部放到间隔循环内部,保证每次切换间隔时会重新计算对应日期
  • 原有的站点遍历、文件夹创建、爬取调用逻辑作为内层循环,嵌套在间隔循环内执行

修改后可直接运行的代码

from datetime import date, timedelta

pickupdate = date(2022, 6, 16)
# 配置所有需要爬取的租期间隔
scrape_intervals = [1, 7, 14, 28]
req_list = [cars, minibuses, trucks, vans]

def offer(Hire_Start, Hire_End, req):
    # 保留你原有爬取逻辑即可
    XXXXXXXXXXXXX

# 按不同租期间隔依次执行爬取
for days_to_scrape in scrape_intervals:
    days = timedelta(days=days_to_scrape)
    returndate = pickupdate + days
    Hire_Start = pickupdate.strftime("%d-%m-%Y")
    Hire_End = returndate.strftime("%d-%m-%Y")

    # 遍历所有目标站点爬取当前间隔的数据
    for req in req_list:
        create_folder_structure(req, Hire_Start)
        offer(Hire_Start, Hire_End, req)

避坑提示:不要把日期计算逻辑放在间隔循环外,否则切换间隔时不会更新还车日期,会导致所有间隔都用1天的租期参数爬取,结果不符合预期。后续如果要增减间隔值,直接修改scrape_intervals列表的元素即可,不需要调整其他逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:57:15