class ShoppingBag: def __init__(self, money=0): self.__money = money self.__goods = Goods() def print_shopping_bag(self): print(' (ShoppingBag) 限度額' + str(self.__money) + '円') if self.__goods == None: print(' (ShoppingBag) 商品は入っていません。') else: self.__goods.print_goods() def set_money(self, money): self.__money = money def get_money(self): return self.__money def set_goods(self, goods): self.__goods = goods def get_goods(self): return self.__goods money = property(set_money, get_money) goods = property(set_goods, get_goods)
class Shop: def __init__(self, shop_name, tel_no): self.__shop_name = shop_name self.__tel_no = tel_no def create_goods(self, goods_name, price): self.goods = Goods(goods_name, price) def print_shop(self): print('(Shop) ' + self.__shop_name + 'TEL:' + self.__tel_no) self.goods.print_goods() def sale_goods(self, goods_name, shopping_bag): if (self.goods.get_goods_name() == goods_name): if (shopping_bag.get_money() > self.goods.get_price()): charge = shopping_bag.get_money() - self.goods.get_price() shopping_bag.set_money(charge) shopping_bag.set_goods(self.goods) print(' (Shop) まいどあり! おつりは' + str(charge) + '円です。') else: print(' (Shop) お金が足りません。') else: print(' (Shop) ' + goods_name + 'は取り扱っていません。申し訳ありません。') def set_shop_name(self, shop_name): self.__shop_name = shop_name def get_shop_name(self): return self.__shop_name def set_tel_no(self, tel_no): self.__tel_no = tel_no def get_tel_no(self): return self.__tel_no shop_name = property(set_shop_name, get_shop_name) tel_no = property(set_tel_no, get_tel_no)
def get_all_goods(self, known_list=None): self.soup = self.fwk.get_page_soup(self.url, times=3000) self.goods_list_soup = self.soup.select(".gl-item") result = [] for eachgoods in self.goods_list_soup: goods_id = eachgoods.attrs["data-sku"] if goods_id in known_list: continue zi_ying = eachgoods.select(".goods-icons") if zi_ying and zi_ying[0].text == u"自营": try: goods = Goods.Goods(self.fwk, goods_id) result.append(goods) except Goods.GetPriceError as _: print "get price fail, skip it. https://item.jd.com/%s.html" % goods_id continue return result
def create_goods(self, goods_name, price): self.goods = Goods(goods_name, price)
time.sleep(0.1) soup = BeautifulSoup(self.driver.page_source, "html.parser") tg = soup.select(target) if tg: finish = True return BeautifulSoup(self.driver.page_source, "html.parser") def close_driver(self): self.driver.close() if __name__ == "__main__": start_time = time.time() print "start..." fwk = TestFrameworkChromePC() try: res_list = [] # goodsids = ["7265178", "2751756", "30026662492", "25206509193", "4333597", "1250248", "5193076", "1749283", # "38252417132", "26282930680", "6988816", "7202389", "879250"] goodsids = [8181054] for goodsid in goodsids: try: goods = Goods.Goods(fwk, goodsid) except Goods.GetPriceError as _: continue finally: # fwk.close_driver() # del fwk print "end in finally" print "end...take %s s" % (time.time() - start_time)
def __init__(self): self.g = Goods() pass
class Buy(object): def __init__(self): self.g = Goods() pass def showGoods(self): """ 展示所有商品 :return: """ count, result = self.g.selectAll() for i in range(count): item = result[i] itemm = (item[0], item[1], item[4]) print(itemm) def showPriceMin(self): """ 展示最便宜商品 :return: """ sql = self.g.selectPriceMin() self.excuteSql(sql) def showPriceMax(self): """ 展示最贵商品 :return: """ sql = self.g.selectPriceMax() self.excuteSql(sql) def showPriceMinGroupby(self, param): """ 展示某个分类下最便宜商品 :param args: :return: """ sql = self.g.selectPriceMinGroupBy(param) self.excuteSql(sql) def showPriceMaxGroupby(self, param): """ 展示某个分类下最贵商品 :param args: :return: """ sql = self.g.selectPriceMaxGroupBy(param) self.excuteSql(sql) def excuteSql(self, sql): """ 执行sql,返回查询数据 :param sql: :return: """ contu, result = self.g.executForSelect(sql) for i in range(contu): item = result[i] itemm = (item[0], item[1], item[4]) print(itemm) return itemm def buyGood(self): pass def createOrder(self): pass
def __init__(self, money=0): self.__money = money self.__goods = Goods()