BeautifulSoup: Как получить sh datetime видео на YouTube в формате datwtime? - PullRequest
0 голосов
/ 09 февраля 2020

В одной части моего сканера мне нужно почистить опубликованные время и дату в формате 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

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Вы можете использовать pythons datetime для анализа строки и форматирования вывода.

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
1 голос
/ 09 февраля 2020

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

Published on Feb 8, 2020

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

date_string = soup_string.strip("Published on")

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

pip install python-dateutil

Код:

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

Это будет выводить дату в ГГГГ-ММ-ДД ЧЧ: ММ: СС

Подробнее о python -dateutil parser вы можете прочитать здесь

...