def extractSalesRankToDB(self, beginDate=datetime.today(), endDate=datetime.today()):
     if beginDate < datetime(2007, 1, 1) or endDate > datetime.today():
         raise Exception('Invalid input date!')
     beginDate = dateToSaturday(beginDate)
     endDate = dateToSaturday(endDate)
     endDate = endDate - timedelta(days=7) if endDate > datetime.today() else endDate
     iterDate = beginDate
     db = DBController()
     while iterDate <= endDate:
         if db.checkSalesRankExistInDB(iterDate):
             iterDate = iterDate + timedelta(days = 7)
             continue
         URL = self.getURL(iterDate)
         chart = self.getSalesChartFromURL(URL)
         db.insertSalesChartToDB(iterDate, chart)
         iterDate = iterDate + timedelta(days = 7)