【问题标题】:How to loop through URLs based on variable, such as date? [duplicate]如何根据变量(例如日期)循环访问 URL? [复制]
【发布时间】:2020-10-26 04:48:35
【问题描述】:

这是一个 URL 的例子,我想用来抓取。 URL 会根据日期变化:

https://betfair-data-supplier-prod.herokuapp.com/api/daily_racing_results?date=2020-01-01

我想从 1 月 1 日到 6 月 30 日抓取数据。我将如何创建一个 for 循环来执行此操作。

例如:

for day and month in URL:
    request = requests.get(f'https://betfair-data-supplier-prod.herokuapp.com/api/daily_racing_results?date=2020-{month}-{day})

【问题讨论】:

  • 你可以使用pandas.date_range

标签: python loops request


【解决方案1】:

首先设置开始日期和结束日期。然后以一天为增量循环它们。然后将当前迭代日期附加到查询的日期参数:

import datetime
import requests

start_date = datetime.date(2019, 12, 31)
end_date = datetime.date(2020, 6, 30)

day_count = (end_date - start_date).days

date = start_date
for i in range(day_count):
    date += datetime.timedelta(days=1)
    request = requests.get('https://betfair-data-supplier-prod.herokuapp.com/api/daily_racing_results?date=' + str(date))

【讨论】:

    【解决方案2】:

    您可以比较日期,以便从时间段的开始增加一天

    Import datetime as dt
    delta = dt.timedelta(days=1)
    i = dt.date(2020, 1, 1)
    ed = dt.date(2020, 6, 30)
    while i<=ed:
        i += delta
        print(f'this/day/{i}')
    

    生产

    this/day/2020-01-01
    this/day/2020-07-02
    this/day/2020-07-03
    ...
    this/day/2020-06-29
    this/day/2020-06-30
    

    【讨论】:

      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      相关资源
      最近更新 更多