В одной части моего сканера мне нужно почистить опубликованные время и дату в формате datetime видео на YouTube. Я использую bs4, и до сих пор я могу получить опубликованный формат времени точно так, как нам показывает YT GUI, то есть «опубликовано 6 мая 2017 года». Но я не могу получить фактическую дату и время. Как я могу это сделать?

Мой код .

    video_obj["date_published"] = video_soup.find("strong", attrs={"class": "watch-time-text"}).text
    return video_obj["date_published"] 

Результат .

Published on Feb 8, 2020

Как я хочу .

YYYY-MM-DD HH:MM:SS
0
Proteeti Prova 9 Фев 2020 в 08:33

2 ответа

Как только вы получите:

Published on Feb 8, 2020

Вы можете сделать следующее, чтобы удалить "Опубликовано на"

date_string = soup_string.strip("Published on")

Чтобы получить это в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС, вы можете использовать библиотеку python-dateutil в python. Вы можете установить его используя:

pip install python-dateutil

Код:

from dateutil import parser
formatted_date = parser.parse("Published on Feb 8, 2020", fuzzy=True)

Дата будет выводиться в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС

Вы можете прочитать больше о парсере python-dateutil здесь

0
Chinmay Atrawalkar 9 Фев 2020 в 07:42

Вы можете использовать дату-время питонов, чтобы проанализировать строку и отформатировать вывод.

pubstring = video_obj["date_published"]  # "Published on Feb 8, 2020"
# pubstring[:13] cuts of first 13 chars
dt = datetime.datetime.strptime(pubstring[13:], "%b %d, %Y")
return dt.strftime("%F") # Format as needed
0
sentence 9 Фев 2020 в 19:13