def AdminPage(): system('cls') while True: print("Enter Your Choice") print("\n\n1. Add New Product") print("\n\n2. Display All Products") print("\n\n3. Modify Product") print("\n\n4. Delete Product") print("\n\n5. Product Page") print("\n\n6. Add Department") print("\n\n7. Exit") option = int(input()) if option == 1: addNewProduct() if option == 2: displayProducts() if option == 3: modifyProduct() if option == 4: deleteProduct() if option == 5: ProductPage() if option == 7: break if option == 6: ADDepartment()
def createProductpageObject(self, pplink): try: doc = lxml.html.parse(pplink) title = doc.xpath(self.xpObj.getTitleXpath(self.domain)) spec = doc.xpath(self.xpObj.getSpecificationXpath(self.domain)) self.ppObj = ProductPage(title, spec, None, None) return True except Exception: print "\tError in parsing product page xpath missing \n\t", pplink, "\n\n\n" return False
class Config: CHROME_DRIVER = '/Users/nikolarancnik/chromedriver' PROJECT_ROOT = "http://automationpractice.com/index.php" # THIS IS THE WAY driver = webdriver.Chrome(executable_path=CHROME_DRIVER) main_page = MainPage(driver) account_page = AccountPage(driver) women_page = WomenPage(driver) orders_page = OrdersPage(driver) product_page = ProductPage(driver) contact_page = ContactUsPage(driver)
class IdentifyReview: def __init__(self, xobj): self.ppObj = None self.stopWordSet = self.getStopWordsSet("textfile/stopWords.txt") self.xpObj = xobj self.domain = None def getStopWordsSet(self, filename): fd = open(filename, "r") stopWordList = [] for words in fd: stopWordList.append(words.split("\n")[0]) return set(stopWordList) def createProductpageObject(self, pplink): try: doc = lxml.html.parse(pplink) title = doc.xpath(self.xpObj.getTitleXpath(self.domain)) spec = doc.xpath(self.xpObj.getSpecificationXpath(self.domain)) self.ppObj = ProductPage(title, spec, None, None) return True except Exception: print "\tError in parsing product page xpath missing \n\t", pplink, "\n\n\n" return False def removeSpecialCharecterFromWord(self, word): return re.sub(r"[^.\w/-]", "", word) def removeStopWords(self, mlist): for ele in mlist: if ele in self.stopWordSet: index = mlist.index(ele) del (mlist[index]) def is_number(self, s): try: float(s) return True except ValueError: return False def removeSpacesBetweenToken(self, mlist): for token in mlist: for char in token: if char == " ": del (char) def getTokenList(self, lines): p = PorterStemmer() finList = [] for line in lines.split("\n"): for sen in line.split("-"): mlist = line.split(" ") n = len(mlist) for i in range(n): mlist[i] = self.removeSpecialCharecterFromWord(mlist[i]) mlist[i] = mlist[i].strip() mlist[i] = mlist[i].lower() # removing blank token for word in mlist: if word.strip() == "" or word.strip() == "-": i = mlist.index(word) del (mlist[i]) # removing stopwords self.removeStopWords(mlist) finList += mlist """ Stemming of word """ n = len(finList) for i in range(n): finList[i] = p.stem(finList[i], 0, len(finList[i]) - 1) for word in finList: if word.strip() == "": i = finList.index(word) del (finList[i]) return finList """ Return probability """ def getPercentageMach(self, Nset, pset): n = len(Nset) count = 0 if n == 0: return 100 for element in Nset: if element in pset: count += 1 else: print "\t\t", element percentage = (float(count) / float(n)) * 100 return percentage """ Compare product title and discription and mached review will saved in file. """ def mach(self, productObj, prodPageLink): # print '\tLink is : ', prodPageLink productTitle = productObj.getTitle() specification = productObj.getSpecification() impword = productObj.getImpWordList() self.domain = prodPageLink.split("/")[2] if not self.createProductpageObject(prodPageLink): return False """ create a file named product title. for each product this file is created for storing review """ filename = "" for el in productTitle.split("\n"): if el: filename += el filename = re.sub(r"[^\w.]", "", filename + ".txt") out = open(filename, "w+") N_tlist = self.getTokenList(productTitle) N_slist = self.getTokenList(specification) N_impList = [] for item in impword: for token in self.getTokenList(item): N_impList.append(token) N_tset = set(N_tlist) N_sset = set(N_slist) N_imp = set(N_impList) # start matching try: p_set = set() tlist = self.getTokenList(self.ppObj.getTitle()[0]) for el in tlist: p_set.add(el) for el in self.ppObj.getSpecification(): for token in self.getTokenList(el): p_set.add(token) N_t_per = self.getPercentageMach(N_tset, p_set) print "\tTitle Mached : ", N_t_per, "%" N_s_per = self.getPercentageMach(N_sset, p_set) print "\tSpecification Mached : ", N_s_per, "%" for item in N_imp: if item in p_set: print "\timportant item < %s > mached" % (item) else: print "\timportant item < %s > not mached" % (item) except Exception: print "\tMaching exception\n\n" out.close() return True
from OrderPage import * from ProductPage import * from ContactUsPage import * PATH = '/Users/nikolarancnik/chromedriver' PROJECT_URL = "http://automationpractice.com/index.php" # THIS IS THE WAY driver = webdriver.Chrome(executable_path=PATH) main_page = MainPage(driver) login_form = Login(driver) account_page = AccountPage(driver) women_page = WomenPage(driver) orders_page = OrdersPage(driver) product_page = ProductPage(driver) contact_page = ContactUsPage(driver) def login_test(): # DONE!!!! """Tests the login steps using given information""" driver.get(PROJECT_URL) # Go to this website time.sleep(1) main_page.navigate_to_login_page( ) # Call navigate_to_login_page method of main_page class time.sleep(1) login_form.login() # Calling class method login() from Login class time.sleep(2) # Pause for 3 seconds # driver.quit() # Close the driver(Chrome)
asin = book_data[0] url = book_data[1] url_review = "https://www.amazon.com/product-reviews/" + asin print(asin) print(url) print(url_review) # if db_conn.check_book(asin): # # db_conn.update_best_seller_crawled(asin) # # print("!!CRAWLED!!") # # sys.exit() # else: # 1. Crawl book book = ProductPage.get_book(asin, url, url_review) data_book = { 'asin': book.asin, 'language': book.language, 'avgCustReview': book.avgCustReview, 'nbCustReview': book.nbCustReview, 'percFiveStar': book.percFiveStar, 'percFourStar': book.percFourStar, 'percThreeStar': book.percThreeStar, 'percTwoStar': book.percTwoStar, 'percOneStar': book.percOneStar, 'rank': book.rank, 'publisher': book.publisher, 'publicationDate': book.publicationDate }