爬虫从文章中正则匹配时间日期

2019-07-11  本文已影响0人  sexy_cyber
        content = 'xxxxxx'
        pattern = re.compile(r'(20\d{2}[_,/,\-,年]\d{1,2}[/,_,\-,月]\d{0,2})(\s{1}\d{2}:\d{2}(:\d{2}){0,1}){0,1}')
        # 拿到文章中提取的时间[('2017-05-08', '', ''), ('2009年10月', '', ''), ('2012年2月', '', ''), ('2012年7月', '', ''), ('2012年10月23', '', '')]
        date_match = re.findall(pattern,content)
        # 将元组转化为字符串
        date_list = []
        for date_tuple in date_match:
            date_list.append(''.join(date_tuple))
        if len(date_list) == 0:
            return None
        elif len(date_list) == 1:
            return date_list[0]
        else:
            # 当列表中时间长度不同时:列表从前往后迭代,两两对比不同的时间的长度,返回最大的
            lastdate = None
            date_str = None
            for i in date_list:
                if lastdate:
                    if i != lastdate:
                        date_str = max([i,lastdate])
                        break
                lastdate = i
            # 如果列表内所有字符串长度相同那么返回index 0
            if not date_str:
                date_str = date_list[0]
            return date_str
上一篇 下一篇

猜你喜欢

热点阅读