gpt4 book ai didi

python - 通过python将 'th' 'st' 'rd' 'nd'的日期字符串转换为日期格式

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:14 27 4
gpt4 key购买 nike

我正在为使用漂亮汤的日期废弃一个网站。这是 CSS

<div id="listing-details-list">
<h3 class="listing-details-header">
Details:
<span>Posted on: 14th June 2016</span>
</h3>
</div>

我用来获取日期的代码是这样的

# date
try:
date=soup.find("h3","listing-details-header")
date_result= str(date.get_text().encode("utf-8").strip()[20:])
print "\nPublished date: ", date_result
except StandardError as e:
date_result="Error was {0}".format(e)
print date_result

我得到的结果是一个字符串形式的日期。一些样本是

23rd June 2016
21st July 2016
20th July 2016
3rd July 2016

现在,我希望日期是格式为“类型”的正确日期,如下所示,以便我可以对其进行计算

23/6/2016
21/7/2016
20/7/2016
3/7/2016

在我的代码中哪种方法最适合获得所需的日期?

我希望以这种方式保存日期:

Month= 6
Day = 23
Year = 2016

我尝试了标记为最佳答案的解决方案并且有效

try:
date=soup.find("h3","listing-details-header")
date_result= str(date.get_text().encode("utf-8").strip()[20:])
date_result=parse(date_result) #added
month = date_result.month
day = date_result.day
year = date_result.year
print month
print day
print year

print "\nPublished date: ", date_result
except StandardError as e:
date_result="Error was {0}".format(e)
print date_result

最佳答案

为了解析日期,我会让 dateutil parser做工作:

>>> from dateutil.parser import parse
>>> l = ["23rd June 2016", "21st July 2016", "20th July 2016", "3rd July 2016"]
>>> for item in l:
... parse(item)
...
datetime.datetime(2016, 6, 23, 0, 0)
datetime.datetime(2016, 7, 21, 0, 0)
datetime.datetime(2016, 7, 20, 0, 0)
datetime.datetime(2016, 7, 3, 0, 0)

您将获得 datetime 实例,您可以使用它来进行日期或时间相关的计算。

我还会改进您在页面上定位所需元素并提取日期的方式:

from dateutil.parser import parse
from bs4 import BeautifulSoup

data = """
<div id="listing-details-list">
<h3 class="listing-details-header">
Details:
<span>Posted on: 14th June 2016</span>
</h3>
</div>"""

soup = BeautifulSoup(data, "html.parser")

for item in soup.find_all("span", text=lambda text: text and text.startswith("Posted on:")):
date_string = item.get_text().split(": ")[-1]
print(parse(date_string))

关于python - 通过python将 'th' 'st' 'rd' 'nd'的日期字符串转换为日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com