淡淡回忆 发表于 2018-8-11 13:41:35

Python实现农历生日提醒功能

#coding:utf-8  
import time
  
from CreateDb import db,cursor    #将数据库操作的一些方法加进来
  
from Spider import SiteData       #将爬虫操作的方法加进来
  
def ListMark(list):
  
    LIST = []
  
    items = list.split('\n')
  
    List = ,items,items,items,items,items,items]
  
    for i in List:
  
      item,value = i.split(':')
  
      LIST.append(value)
  
    return LIST
  

  
def get_item(text):
  
    item,value = text.split(' ')
  
    return item
  

  
def get_value(text):
  
    item,value = text.split(' ')
  
    return value
  

  
def UTF(text):
  
    TEXT = text.decode('gbk').encode('utf8')
  
    return TEXT
  

  
if __name__ == '__main__':
  
    for year in range(1900,2050):
  
      sql = "select DAY from Calendar.%s order by DAY desc limit 1" % year
  
      cursor.execute(sql)
  
      request = cursor.fetchall()
  
      print "[!]process %s" % year
  
      try:
  
            Month = str(request).split(',')
  
      except:
  
            Month = str(request)
  
            if Month == "()":
  
                print"[!]No data in Table! Crawling now.."
  
                for m in range(1,13):
  
                  url = "http://www.nongli.com/item3/rili_%s-%s.htm" % (year,m)
  
                  OpenSite = SiteData(url)
  
                  returnList = OpenSite.Find()
  
                  for i in returnList:
  
                        List = ListMark(i)
  
                        Day = get_item(List)
  
                        Week = get_value(List)
  
                        Constellation = List
  
                        Festival = List
  
                        Year = List
  
                        Lunarcalendar = List
  
                        Lunnar = List
  
                        Ershibasu = List
  
                        Jiazi = List
  
                        Insert_sql = "insert into Calendar.%s values('%s','%s','%s','%s','%s','%s','%s','%s','%s')" \
  
                        % (year,Day,UTF(Week),UTF(Constellation),UTF(Festival),\
  
                            UTF(Year),UTF(Lunarcalendar),UTF(Lunnar),UTF(Ershibasu),UTF(Jiazi))
  
                        try:
  
                            cursor.execute(Insert_sql)
  
                            db.commit()
  
                            print "[ ]Insert %s data ..." % Day
  
                        except:
  
                            print "[!]Insert %s Error!!!" % Day
  
                            db.rollback()
  
                        time.sleep(0.1)
  
      try:
  
            if Month == 12:
  
                print "[ ] Have data in Table."
  
            else:
  
                NodataMoth = range(int(Month)+1,13)
  
                for M in NodataMoth:
  
                  url = "http://www.nongli.com/item3/rili_%s-%s.htm" % (year,M)
  
                  OpenSite = SiteData(url)
  
                  returnList = OpenSite.Find()
  
                  for i in returnList:
  
                        List = ListMark(i)
  
                        Day = get_item(List)
  
                        Week = get_value(List)
  
                        Constellation = List
  
                        Festival = List
  
                        Year = List
  
                        Lunarcalendar = List
  
                        Lunnar = List
  
                        Ershibasu = List
  
                        Jiazi = List
  
                        Insert_sql = "insert into Calendar.%s values('%s','%s','%s','%s','%s','%s','%s','%s','%s')" \
  
                        % (year,Day,UTF(Week),UTF(Constellation),UTF(Festival),\
  
                            UTF(Year),UTF(Lunarcalendar),UTF(Lunnar),UTF(Ershibasu),UTF(Jiazi))
  
                        try:
  
                            cursor.execute(Insert_sql)
  
                            print "[ ]Insert %s data ..." % Day
  
                            db.commit()
  
                        except:
  
                            print "[!]Insert %s Error!!!" % Day
  
                            db.rollback()
  
                        time.sleep(0.1)
  
      except:
  
            print "[!]Unknown Error!"
  
    db.close()
页: [1]
查看完整版本: Python实现农历生日提醒功能