gpt4 book ai didi

python - 遍历 python 中的日期范围

转载 作者:太空狗 更新时间:2023-10-30 00:58:58 24 4
gpt4 key购买 nike

好吧,我对编程还比较陌生,这让我很困惑。我从网站上抓取数据,数据每周都在变化。每次数据更改从 09-09-2015 开始并运行到当前时,我都想运行我的抓取过程。

我知道如何通过 0909 然后 0910 然后 0911 等每个数字轻松运行,但这不是我需要的,因为这会从服务器请求太多毫无意义的请求。

这是URL的格式 http://www.myexamplesite.com/?date=09092015

我知道简单的:

for i in range(startDate, endDate):
url = 'http://www.myexamplesite.com/?date={}'.format(i)
driver.get(url)

但我一直无法弄清楚的一件事是操纵 pythons dateTime 以准确反射(reflect)网站使用的格式。

即:0909201509162015092320150930201510072015...09272017

如果所有其他方法都失败了,我只需要执行一次,这样就不会花太长时间完全忽略循环并手动输入我希望从中抓取的日期,然后将我的所有数据帧附加在一起。我主要好奇如何在这个意义上为可能需要更多数据的 future 项目操作日期时间函数。

最佳答案

开始的好地方是 datetime , datetimedelta对象文档。

首先,让我们构建开始日期和结束日期(今天):

>>> from datetime import date, timedelta
>>> start = date(2015, 9, 9)
>>> end = date.today()
>>> start, end
(datetime.date(2015, 9, 9), datetime.date(2017, 9, 27))

现在让我们定义增量的单位——一天:

>>> day = timedelta(days=1)
>>> day
datetime.timedelta(1)

关于日期 (date/datetime) 和时间增量 (timedelta) 的一个好处是它们可以添加:

>>> start + day
datetime.date(2015, 9, 10)

我们也可以使用format()以人类可读的形式获取该日期:

>>> "{date.day:02}{date.month:02}{date.year}".format(date=start+day)
'10092015'

所以,当我们将所有这些放在一起时:

from datetime import date, timedelta

start = date(2015, 9, 9)
end = date.today()
week = timedelta(days=7)

mydate = start
while mydate < end:
print("{date.day:02}{date.month:02}{date.year}".format(date=mydate))
mydate += week

我们对从 2015-09-09 开始到今天结束的日期进行简单迭代,增加 7 天(一周):

09092015
16092015
23092015
30092015
07102015
...

关于python - 遍历 python 中的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46455168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com