Передача диапазона дат из функции веб-очистки в цикл - PullRequest
0 голосов
/ 07 января 2020

Я запускаю веб-очистку с Python, которая захватывает данные и импортирует их в SQL БД. Соскоб работает отлично. Я хотел бы использовать переменную даты для исторического заполнения БД. Дата также является ключевой для URL в блокноте. Я сделал очистку функцией:

def scrape(date):
   url = "https://address%s.csv" %(date.strftime("%Y%m%d"))
   #do stuff to import to SQL DB

Так что я бы определил диапазон дат, а затем для каждого дня в этом диапазоне запустил очистку и импортировал, передав дату из l oop. Что-то вроде:

start_date = pd.datetime(2020, 1, 1)
end_date = pd.datetime(2020, 1, 3)
for n in range(int(start_date.day), int ((end_date - start_date).days), 1):
    scrape(n)

Вот мой результат: я передаю целое число, которое не будет работать. Мне нужно передавать фактическую дату в функцию от каждой итерации l oop. Таким образом, в этом случае я выполняю очистку для 1 января 2020 года и 2 января 2020 года и импортирую полученные данные в свою БД, после чего код будет завершен.

Я агности c какой тип l oop я бы использовал, пока смогу определить диапазон дат. Есть мысли?

Ответы [ 2 ]

1 голос
/ 07 января 2020

Я работал над похожим кодом. Вы можете ссылаться на ссылку Github , генерирующую динамический c URL с датой .!

1 голос
/ 07 января 2020

Если я вас правильно понял, вы ищете функцию pandas.date_range():

def scrape(date):
    print(date.strftime("%Y%m%d"))  # now just print the date
    # url = "https://address%s.csv" %(date.strftime("%Y%m%d"))

start_date = pd.datetime(2020, 1, 1)
end_date = pd.datetime(2020, 1, 3)

for d in pd.date_range(start_date, end_date):
    scrape(d)

Печать:

20200101
20200102
20200103
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...