【问题标题】:BeautifulSoup: How to get publish datetime of a youtube video in datwtime format?BeautifulSoup:如何以日期时间格式获取 youtube 视频的发布日期时间?
【发布时间】:2020-02-09 05:33:55
【问题描述】:

在我的爬虫的一部分中,我需要以 youtube 视频的日期时间格式抓取发布的时间和日期。我正在使用 bs4,到目前为止,我可以按照 YT GUI 向我们显示的方式获取发布的时间格式,即“发布于 2017 年 5 月 6 日”。但我无法检索实际的日期时间。我该怎么做?

我的代码:

    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

【问题讨论】:

    标签: python datetime beautifulsoup youtube datetime-format


    【解决方案1】:

    一旦你得到:

    Published on Feb 8, 2020
    

    您可以执行以下操作来删除“发布于”

    date_string = soup_string.strip("Published on")
    

    要以 YYYY-MM-DD HH:MM:SS 格式获取此信息,您可以在 python 中使用 python-dateutil 库。您可以使用以下方式安装它:

    pip install python-dateutil
    

    代码:

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

    这将以 YYYY-MM-DD HH:MM:SS 格式输出日期

    You can read more about python-dateutil parser here

    【讨论】:

      【解决方案2】:

      您可以使用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
      

      【讨论】:

        猜你喜欢
        • 2020-06-02
        • 2016-08-24
        • 1970-01-01
        • 2015-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多