python选择字符串中的日期

2024-06-17 11:57:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一个代码,在给定的字符串中选择日期,并将这些日期解析为ISO日期。要将日期解析为iso日期,我将使用dateutil.parser文件但是我不知道如何从给定的字符串中选择日期。你知道吗

这是我要从中选择日期的字符串:

<h1 class="fluid">Friday March 20 (day #23)</h1>

我只想从字符串中选择“3月20日星期五”部分。我就是想不出怎么解决这个问题。 这是我目前掌握的密码:

  import dateutil.parser as parser

    def extract_date(h1):
        date = (parser.parse(h1))
        return(date.isoformat())[:10]

    test = "<h1 class=\"fluid\">Friday March 20 (day #23)</h1>"
    test2 = "Friday March 20"

    print extract_date(test2)

输出:2016-03-20

如您所见,代码可以很好地处理test2字符串,但是我现在需要一个代码,从测试字符串中选择“Friday March 20”或者可能只选择“March 20”

谢谢您的帮助!你知道吗


Tags: 字符串代码parserdateextractisoh1class
1条回答
网友
1楼 · 发布于 2024-06-17 11:57:08

您可以使用HTML解析器提取h1元素文本,然后按(拆分:

>>> from bs4 import BeautifulSoup
>>> data = '<h1 class="fluid">Friday March 20 (day #23)</h1>'
>>> text = BeautifulSoup(data, "html.parser").text
>>> desired_text = text.split(" (", 1)[0]
>>> desired_text
u'Friday March 20'

在本例中,使用了^{}包。你知道吗

然后可以用dateutil加载它:

>>> from dateutil.parser import parse
>>> parse(desired_text)
datetime.datetime(2016, 3, 20, 0, 0)

请注意,标准库中的^{}也将处理解析(在这种特殊情况下):

>>> import xml.etree.ElementTree as ET
>>> ET.fromstring(data).text
'Friday March 20 (day #23)'

相关问题 更多 >