好,这一小节来讲讲怎么对日期格式进行处理,我们再来看看那难看的日期,这将会是它最后一次出现在我们的视线中
2016/01/14 ·
我们的处理就是将空格,特殊字符和字符去掉,最后只保留 "2016/01/14" 我选择的依然是RE,有很多种写法,作为参考,我这里给出两种
使用RE和python分割字符串的方法
去点字符串中的空格,并以&来分割字符串,选分割后的第一块数据
re.sub(r'\s',"",item[2]).split(r'&')[0]
2. 仅仅使用RE
RE匹配日期的格式xxxx/xx/xx,将所匹配到的内容返回来
re.search(r'\d{4}/\d{2}/\d{2}',str).group()
然后我们的代码就变成了这样
#!/usr/bin/env python # -*- coding:UTF-8 -*- __author__ = '217小月月坑' ''' deal with the date format ''' from bs4 import BeautifulSoup import urllib2 import re import sys reload(sys) sys.setdefaultencoding( "utf-8" ) url = 'http://blog.jobbole.com/all-posts/' request = urllib2.Request(url) response = urllib2.urlopen(request) contents = response.read() pattern = re.compile(r'class="archive-title".*?href="(.*?)".*?title="(.*?)">.*?<br />(.*?)<a.*?',re.S) items = re.findall(pattern,contents) for item in items: print item[0], item[1], re.sub(r'\s',"",item[2]).split(r'&')[0]
将日期格式处理好之后输出是这样子的
终于看起来顺眼一些了,现在再来谈论下一个问题,为什么要大费周章的对这些日期的输出格式进行处理