Python实现农历生日提醒功能
#coding:utf-8import 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]