首页 > 解决方案 > 在时间范围之间迭代

问题描述

我需要运行代码在日期范围内迭代抓取。目前我正在手动执行以下操作:

start_date=input("Enter start date: mm/dd/yyyy ") 
end_date=input("Enter end date: mm/dd/yyyy ") 
query=input("Enter query: ")
print("\n")

driver = webdriver.Chrome('/path')
driver.get('path’+‘cd_min=start_date&cd_max=end_date’)

上面的链接可能略有不同。我想手动插入开始日期,然后在一段时间内迭代一段时间或 for 循环函数,在步骤 1(start_date+1, start_date+2, and so on)中从 a start_dateend_date开始时使用输入选择)。

你能告诉我我该怎么做吗?

标签: pythonloops

解决方案


据我了解,您需要创建一系列可以迭代的日期。这可以通过使用 pandas 来完成。假设您的输入是正确的,您可以执行以下操作。

import pandas as pd
from datetime import datetime, timedelta

start_date=input("Enter start date: mm/dd/yyyy ") 
end_date=input("Enter end date: mm/dd/yyyy ") 

datelist = pd.date_range(start=start_date, end=end_date).to_pydatetime().tolist()
for i, _ in enumerate(datelist):
    if i <len(datelist):
        start_date = datelist[i].strftime('%m/%d/%Y')
        end_date = datelist[i+1].strftime('%m/%d/%Y')

        driver = webdriver.Chrome('/path')
        driver.get('path'+f'cd_min={start_date}&cd_max={end_date}')

推荐阅读