我使用python创建了一个爬虫。
但我的抓取工具以这种格式获取日期:
s = page_ad.findAll('script')[25].text.replace('\'', '"')
s = re.search(r'\{.+\}', s, re.DOTALL).group() # get json data
s = re.sub(r'//.+\n', '', s) # replace comment
s = re.sub(r'\s+', '', s) # strip whitspace
s = re.sub(r',}', '}', s) # get rid of last , in the dict
dataLayer = json.loads(s)
print dataLayer["page"]["adDetail"]["adDate"]
2017-01-1412:28:07
我只想要没有小时的日期(2017-01-14
),如果没有空格,如何只获得日期?
答案 0 :(得分:1)
使用字符串子集:
>>> date ="2017-01-1412:28:07"
>>> datestr= date[:-8]
>>> datestr
'2017-01-14'
>>>
答案 1 :(得分:0)
试试这段代码:
In [2]: from datetime import datetime
In [3]: now = datetime.now()
In [4]: now.strftime('%Y-%m-%d')
Out[4]: '2017-01-24'
我建议您先将日期解析为datetime
对象,然后显示相关信息。
为此,更好的方法是使用库。 我使用dateparser执行此任务,示例用法:
import dateparser
date = dateparser.parse('12/12/12')
date.strftime('%Y-%m-%d')
答案 2 :(得分:0)
由于这不是标准的日期格式,只需切片结束。
st = "2017-01-1412:28:07"
res = st[:10]
print res
>>>2017-01-14
答案 3 :(得分:0)
首先使用datetime
将其转换为datetime对象,然后使用stftime()
函数根据需要格式化输出:
from datetime import datetime
ad_date = dataLayer["page"]["adDetail"]["adDate"]
print datetime.strptime(ad_date, "%Y-%m-%d%H:%M:%S").strftime("%Y-%m-%d")
这将打印:
2017-01-14
通过使用此方法,它可以让您灵活地显示其他项目,例如在末尾添加%A
可以为您提供一周中的某一天:
print datetime.strptime(ad_date, "%Y-%m-%d%H:%M:%S").strftime("%Y-%m-%d %A")
e.g。
2017-01-14 Saturday