python-79:为何要对日期进行处理

为何要对日期进行处理html

前面说过,每一页显示的文章数有20条,而天天更新的也就三四条,若是每次都将20条信息显示出来的话,必然会有不少重复的信息,这样很差,因此我但愿能按日期搜索,好比,我天天早上运行这个程序,我但愿显示的是昨天更新的文章,由于若是显示当天的文章的话,后面还有十几个小时,指不定会更新什么的,因此咱们须要对日期进行处理,方便拿来对比而且按照这个时间来进行搜索python

要实现这个功能,咱们获取的应该有两个时间,昨天的日期、文章发布的日期,先获取昨天的日期,而后拿这个日期与每篇文章发布的日期进行对比,若是匹配的话就能够认为是咱们须要的文章
linux

那么,怎么获取昨天的日期呢
windows

我使用的是linux操做系统,因此经过命令我能够很容易的获取到昨天的时间,就像下面这样:函数

search_date = os.popen(r'date -d"yesterday" +"%Y/%m/%d"').read().strip('\n')
print search_date

上面的代码只是适用于Linux系统,windows系统上或许有相似的命令你们能够本身去搜索并实现,可是,这里还有另一种实现的方法,使用python本身的函数,适用于任何系统post

import datetime
today=datetime.date.today() 
oneday=datetime.timedelta(days=1) 
yesterday=today-oneday   
date = yesterday.strftime(r'%Y/%m/%d')

这样就可以获取到昨天的日期了,咱们要用这个日期与文章发布日期进行对比,(这应该在循环里面实现,由于咱们有20篇文章,咱们须要对每一篇的发布日期都进行对比),若是两个日期相同,咱们就认为匹配到的是昨天发布的文章,而后,咱们再将这些信息输出,因此,咱们的代码看起来应该像这样学习

#!/usr/bin/env python
# -*- coding:UTF-8 -*-
__author__ = '217小月月坑'
 
'''
search the article of yesterday(linux)
'''
 
from bs4 import BeautifulSoup
import urllib2
import re
import os

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

# get the source code of html
url = 'http://blog.jobbole.com/all-posts/'
request = urllib2.Request(url)
response = urllib2.urlopen(request)
contents = response.read()

# get the date of yesterday
search_date = os.popen(r'date -d"yesterday" +"%Y/%m/%d"').read().strip('\n')

# get url, title, date of the article
pattern = re.compile(r'class="archive-title".*?href="(.*?)".*?title="(.*?)">.*?<br />(.*?)<a.*?',re.S)
items = re.findall(pattern,contents)
i = 0
for item in items:
    release_date = re.sub(r'\s',"",item[2]).split(r'&')[0]
    # contrast the date
    if search_date == release_date:     
        i += 1 
        print i, item[0], item[1], release_date
        continue

而后结果是这样的url


第一步,获取咱们想要的文章到这里已经完成了,咱们下面来说讲怎么获取文章正文的内容,通过了前面BS4实例1的学习,我认为这个应该不难操作系统

相关文章
相关标签/搜索