龙空技术网

Python数据分析之爬虫第五练:如何得到我们需要的日期数据?

职教之光 478

前言:

眼前你们对“python取日期时间函数”可能比较关心,各位老铁们都需要学习一些“python取日期时间函数”的相关知识。那么小编在网摘上收集了一些对于“python取日期时间函数””的相关内容,希望姐妹们能喜欢,同学们快快来了解一下吧!

问题背景

在《Python数据分析第二练:如何用爬虫一次爬取多个页面》给出的例子中,我们对于新闻的日期是通过下面的方式获取得到的。

    page_date = '<span class="c-color.*?aria-label="发布于:(.*?)"'    date = re.findall(page_date, web, re.S)

对照下网页源代码就会发现,这个日期的格式不是“2022-05-01”的格式,而是“X天前”、“XX时XX分”等进行了转译的内容,可能这么做的原因是想让我们更加懂得“自己动手、丰衣足食”吧~~~

百度资讯的日期表述形式

那么,我们怎么搞一哈子才能把日期转换成标准的日期格式呢?以下enjoy~~~

LOGO

Python datetime库

Dateime库提供了提供用于操作日期和时间的函数类,可通过help(datetime)查看相信信息,有需要的伙伴还是请自行查阅(切记:自己动手、丰衣足食呦)。

import datetimehelp(datetime)

其它相关的库还包括:

时间日期相关的python库

我们在本文中暂时只对使用到的部分进行简单介绍,详细内容可以根据自己的需求随时深挖。

from datetime import datetime  # 注意前后两个datetime的含义不同,前者是模块,后者是函数类 now = datetime.now()print(now)print(now.strftime('%a, %b %d %H:%M'))

日期打印

其中,Python中时间日期格式化符号用法如下:

%Y 四位数的年份表示(000-9999)%y 两位数的年份表示(00-99)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M 分钟数(00-59)%S 秒(00-59)%a 本地简化星期名称%A 本地完整星期名称%b 本地简化的月份名称%B 本地完整的月份名称%c 本地相应的日期表示和时间表示%j 年内的一天(001-366)%p 本地A.M.或P.M.的等价符%U 一年中的星期数(00-53)星期天为星期的开始%w 星期(0-6),星期天为星期的开始%W 一年中的星期数(00-53)星期一为星期的开始%x 本地相应的日期表示%X 本地相应的时间表示%Z 当前时区的名称%% %号本身

在我们的案例中,由于日期信息获取的为“X天前”等形式,这就还需要进行日期之间的间隔计算,这需要使用到datetime中的timedelta类。

from datetime import datetime,  timedelta now = datetime.now()print(now) cur_time1 = now + timedelta(hours=10)print(cur_time1) cur_time2 = now - timedelta(days=1)print(cur_time2) cur_time3 = now + timedelta(days=2, hours=12)print(cur_time3)

日期计算

上面的两个内容是我们在案例学习中主要涉及到的,其它的部分就不做过多赘述。

案例代码

对应到我们的第二讲案例,需要把date转换成标准的日期,具体的代码如下:

page_date = '<span class="c-color.*?aria-label="发布于:(.*?)"'date = re.findall(page_date, page, re.S)print(date)if ('天前' in date[0]):    date[0] = (now - timedelta(days=int(date[0][0]))).strftime('%Y-%m-%d %H:%M')else:    date[0]print(date[0])

代码输出结果

一起练习吧

最后,又到了激动人心的一起思考一起练环节,伙伴们,动动脑、动动手,“咯滴咯滴,咯滴咯滴,咯滴咯滴,啊哩斯呔哩”~~~

欢迎交流和讨论。

我要学习!

标签: #python取日期时间函数