如何使用Scrapy从给定HTML元素中提取日期?
Scrapy提取Twitter推文日期的实用方法
嘿,我来帮你解决这个Scrapy提取日期的问题!你拿到的这个Twitter推文时间戳元素里,有好几种靠谱的方式能取出你需要的日期,我给你拆解一下:
提取完整的日期时间(从title属性)
这个<a>标签的title属性里存着完整的时间信息,直接提取就行:full_datetime = response.xpath('//*[contains(@class,"tweet-timestamp")]/@title').get() # 如果只需要日期部分,用字符串分割处理 date_only = full_datetime.split(' - ')[1] # 结果是"24 Apr 2018"提取短格式日期(从span文本)
如果你只需要像Apr 24这样的短日期,直接取span标签里的文本内容:short_date = response.xpath('//*[contains(@class,"tweet-timestamp")]/span/text()').get()用时间戳转换为任意格式日期(最灵活)
标签里的data-time属性存着Unix时间戳,用这个可以转换成你想要的任何日期格式,非常灵活:from datetime import datetime timestamp = response.xpath('//*[contains(@class,"tweet-timestamp")]/span/@data-time').get() # 转换为datetime对象 date_obj = datetime.fromtimestamp(int(timestamp)) # 格式化为你需要的日期格式,比如"2018-04-24"或者"24 Apr 2018" formatted_date = date_obj.strftime('%Y-%m-%d')
小提示:如果是要批量提取多个推文的日期,把.get()换成.getall()就能拿到所有匹配结果的列表啦。
内容的提问来源于stack exchange,提问作者Jake.bake
相关产品推荐
相关产品推荐

