def parse_product(self, driver): driver.implicitly_wait(10) product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.hidden-xs[itemprop=name]') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'p.reference > span.ezstring-field') if element: product['code'] = element.text.strip() # price_cny N/A # images elements = of_utils.find_elements_by_css_selector( driver, 'div.watch > img[itemrprop=image]') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail texts = [] elements = of_utils.find_elements_by_css_selector( driver, 'div.details > div > div.ezxmltext-field > p') for element in elements: text = element.text.strip() if text: texts.append(text) product['detail'] = '\n'.join(texts) return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'div.productName.itemTitle') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.editorial-description > div > span.value') if element: product['code'] = element.text.split(' ')[-1].strip() # price_cny N/A # images elements = of_utils.find_elements_by_css_selector( driver, 'div#productSecondaryImage > ul.alternativeImages > li > img') images = [ element.get_attribute('src').strip().replace('_8_', '_17_') for element in elements ] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.description > div.title > span.value') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'strong#productName') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_hkd element = of_utils.find_element_by_css_selector( driver, 'div.product-info__price') if element: price_text = element.text.split(' ')[0][1:].strip() product['price_hkd'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'article.product-large > div > div.media > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'p#productVariantName') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector(driver, 'h1.subtitle') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'p.sku_subtitle') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, 'span#final-price') if element: price_text = element.text.strip()[1:].strip() # 去掉开头的¥ product['price_cny'] = int(price_text) # images elements = of_utils.find_elements_by_css_selector( driver, 'div#carouselProductImage > div.caroufredsel_wrapper > ul > li > img' ) images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.descriptionBox > p.descriptionText') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() #title element = of_utils.find_element_by_css_selector( driver, '#product-content .product-name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A element = of_utils.find_element_by_css_selector( driver, '#product-content .product-number span') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, '#product-content .product-price .price-sales') if element: product['price_cny'] = of_utils.convert_price(element.text.strip()) # images elements = of_utils.find_elements_by_css_selector( driver, '#pdpMain .primary-image') images = [element.get_attribute('src') for element in elements] images = {}.fromkeys(images).keys() product['images'] = ';'.join(images) # detail N/A return product
def parse_product(self, driver): driver.implicitly_wait(15) product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'span.modelName.inner') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.left > div.modelFabricColor > span.value') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, 'div.priceUpdater > span.price > span.value') if element: price_text = element.text.strip().replace(',', '') product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'div#smc-yItemImages-thumbs > ul.alternativeImages > li > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.contentDesc > div.details > span.value') product['detail'] = element.get_attribute('innerHTML').strip().replace( '<br>', '') return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'div.frabic-detail-right > h3') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code + price_cny elements = of_utils.find_elements_by_css_selector( driver, 'div.detail-chose-box > div > strong') if len(elements) >= 2: product['code'] = elements[0].text.strip() product['price_cny'] = int(float(elements[1].text.strip())) # images elements = of_utils.find_elements_by_css_selector( driver, 'div.frabic-detail-left > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'table.detail > tbody > tr > td > span.detail') product['detail'] = element.text.strip() return product
def parse_product(self, driver): driver.implicitly_wait(15) product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, ".product-detail .product-name") if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A element = of_utils.find_element_by_css_selector( driver, '.product-detail .product-number > span') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, '.product-detail .price-sales') if element: product['price_usd'] = int( float(element.text.strip().replace('$', '').replace(',', ''))) # images elements = of_utils.find_elements_by_css_selector( driver, '.pdp-thumb-link img') images = [ element.get_attribute('src').strip().replace('thumb', 'large') for element in elements ] product['images'] = ';'.join({}.fromkeys(images).keys()) # detail N/A return product
def parse_product(self, driver): of_utils.sleep(2) product = of_spider.empty_product.copy() ele = of_utils.find_element_by_css_selector(driver, 'div.product-name>h1') product['title'] = ele.text.strip() if ele else '' ele = of_utils.find_element_by_css_selector(driver, 'div[itemprop=sku]') product['code'] = ele.text.strip() if ele else '' ele = of_utils.find_element_by_css_selector(driver, 'meta[itemprop=price]') product['price_cny'] = of_utils.convert_price(ele.get_attribute('content').strip()) if ele else 0 # images imgs=[] eles = of_utils.find_elements_by_css_selector(driver, '.fotorama__thumb>img') if not eles: eles = of_utils.find_elements_by_css_selector(driver, '.fotorama__stage__frame>img') for ele in eles: img = ele.get_attribute('src').strip().replace('cache', '') for a in img.split('/'): if len(a) == 32: img = img.replace(a,'') imgs.append(img) product['images'] = ';'.join(imgs) return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.title#page-title') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.infos-watch > h2.sku') if element: product['code'] = element.text.strip() # price_cny N/A # images elements = of_utils.find_elements_by_css_selector( driver, 'ul.list-variations > li > div > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.field-items > div.field-item > p') if not element: element = of_utils.find_element_by_css_selector( driver, 'div#description') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector(driver, 'h1.product-name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector(driver, 'p.sku-id') if element: code_text = element.text.strip() code = code_text.split(' ')[-1].strip() product['code'] = code # price_cny element = of_utils.find_element_by_css_selector(driver, 'div.product-price > span.price-sales') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images list_box = of_utils.find_element_by_css_selector(driver, 'div.slick-track[role=listbox]') if list_box: elements = of_utils.find_elements_by_css_selector(list_box, 'div.product-image') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector(driver, 'div.full-width-col > h2') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.product-name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector(driver, 'p.sku') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector(driver, 'span.price') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'div.image-item > img.img-responsive') images = [ element.get_attribute('src').strip().replace('270x270/', '') for element in elements ] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'p.description') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'div.product-name-pdp > p') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.product-number > p') if element: product['code'] = element.text.split(':')[-1].strip() # price_cny element = of_utils.find_element_by_css_selector( driver, 'div.product-price-box > span') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'ul#main > li.pdp-gallery-list > div > a > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.goods-details > p') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.productName > div.modelName > span') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.model > p.attributesUpdater.title > span.value') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, 'div.priceUpdater > span.full.price > span.value') if element: price_text = element.text.strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'div#itemImages > ul.alternativeImages > li > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.ItemDescription > span.text') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, '#product-content .product-name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_usd element = of_utils.find_element_by_css_selector( driver, '#product-content .product-price .price-sales') if element: product['price_usd'] = int( float(element.text.strip().replace('$', ''))) # # images elements = of_utils.find_elements_by_css_selector( driver, '.product-primary-image .slick-list .slick-track .item a') if elements: images = [ element.get_attribute('href').strip() for element in elements ] images = {}.fromkeys(images).keys() product['images'] = ';'.join(images) # # detail N/A return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.item-name > span.modelName') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.modelfabricolor > p > span.value') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, 'div.itemPrice > span.price > span.value') if element: price_text = element.text.strip().replace(',', '') product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, '#leftPart > div.imagesContent.productShots > div.alternativeDots.productShots__gallery.productShots__gallery--alternative > div > ul > li > img' ) images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'p.attributes.editorialdescription > span.value') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.product-name') if element: product['title'] = element.text.strip() element = of_utils.find_element_by_css_selector( driver, 'div#product-content > div.product-number') if element: product['title'] += ' ' + element.text.strip() else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, 'div#product-content >div.product-price > span.price-sales') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'div.product-image > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail N/A return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'meta[property="og:title"]') if element: product['title'] = element.get_attribute('content') else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, 'meta[property="product:price:amount"]') if element: product['price_cny'] = element.get_attribute('content') # # images elements = of_utils.find_elements_by_css_selector( driver, 'div[data-test="product-imagesContainer"] img') if elements: images = [ element.get_attribute('src').strip() for element in elements ] product['images'] = ';'.join(images) # # detail N/A return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.product-name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'span[itemprop=productID]') if element: product['code'] = element.text.strip() # price_cny N/A # images images = [] elements = of_utils.find_elements_by_css_selector( driver, 'div.product-image > picture > img') # images = [element.get_attribute('src').strip() for element in elements] for element in elements: image_text = element.get_attribute('src').strip() images.append(image_text.split('?')[0]) product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.desc-image-wrap > div.product-description > p.product-description--content' ) product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'div.product-titles > div.product-name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, 'div.price-info > div.price-box > span.regular-price') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images element = of_utils.find_element_by_css_selector( driver, 'li.product-img.main-pic > img') product['images'] = element.get_attribute('src').strip() # detail element = of_utils.find_element_by_css_selector( driver, 'div.tab_content > div[data-anchor-scroll-id=desc] > div') product['detail'] = element.text.split('\n')[1].strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, '.page-title>span') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, '.product-info-price .price') if element: product['price_cny'] = of_utils.convert_price( element.text.replace('¥', '').strip()) # images elements = of_utils.find_elements_by_css_selector( driver, '.fotorama__stage__shaft>div>img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail N/A element = of_utils.find_element_by_css_selector( driver, "meta[property='og:description']") if element: product['detail'] = element.get_attribute('content').strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'h1.prd-ProductContent_Title') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, '.prd-ProductPrice_Price>span') if element: product['price_gbp'] = element.text.strip()[1:] # images elements = of_utils.find_elements_by_css_selector( driver, '.prd-ProductImage_Thumbs a.prd-ProductImage_Link') if elements: images = [ element.get_attribute('href').strip() for element in elements ] product['images'] = ';'.join(images) else: elements = of_utils.find_elements_by_css_selector( driver, '.prd-ProductImage img') images = [ element.get_attribute('src').strip() for element in elements ] product['images'] = ';'.join(images) # detail N/A return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'span.c-pdp__cta-section--product-title') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.c-pdp__cta-section--product-ref-id > span') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector(driver, 'div.price') if element: price_text = element.get_attribute('innerHTML').strip() if not price_text.startswith('-¥'): # 有价格为-¥1的情况 price_text = price_text[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'div.item.c-pdp__image--wrapper > div > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div#marketing_description > span') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, ".product-title") if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, '.product-price-discount .product-price-val') if element: product['price_hkd'] = element.text.strip()[3:] # images elements = of_utils.find_elements_by_css_selector( driver, '.product-cover') if elements: images = [ element.get_attribute('src').strip() for element in elements ] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, '.product-description') if element: product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, '.mb-pdp-heading') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, '.mb-pdp-prod-ident') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, '.mb-pdp-price') if element: product['price_cny'] = of_utils.convert_price(element.text.strip()) # images elements = of_utils.find_elements_by_css_selector( driver, '.slick-slide:not(.slick-cloned) img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail N/A return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, 'span.inner.modelName') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, 'div.modelFabricColor > span.value') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, 'div.convertedPrice > span.price') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector( driver, 'ul.alternativeImages > li.swiper-slide > img') images = [ element.get_attribute('src').strip().replace('_7_', '_16_') for element in elements ] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, 'div.jspContainer> div.jspPane > span.value') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector(driver, 'div.product-info > h1.name') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector(driver, 'p.productreference > span.productreference-value') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector(driver, 'span.price.price-details') if element: price_text = element.text.strip()[1:].strip().replace(',', '') # 去掉开头的¥ product['price_cny'] = int(float(price_text)) # images elements = of_utils.find_elements_by_css_selector(driver, 'div.slick-track > div.big-picture > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector(driver, 'div.VCA-product-details_description-ct > p') product['detail'] = element.text.strip() return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, '.pdp-title-product>div>h1') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector(driver, '#product-id') if element: product['code'] = element.get_attribute('value') # price_cny element = of_utils.find_element_by_css_selector( driver, '.product-add-to-cart .product-price>span') if element: product['price_cny'] = of_utils.convert_price( element.text.strip().replace('CNY', '')) # images elements = of_utils.find_elements_by_css_selector( driver, '.simple-slide-wrapper > div > a') images = [ element.get_attribute('href').strip() for element in elements ] product['images'] = ';'.join(images) # detail N/A return product
def parse_product(self, driver): of_utils.sleep(2) # driver.implicitly_wait(15) product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, ".product-name") if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code N/A # price_cny element = of_utils.find_element_by_css_selector( driver, 'label.regular-price>span') if element: product['price_euro_de'] = int( float(element.text.strip().replace('€', '').replace(',', ''))) # images elements = of_utils.find_elements_by_css_selector( driver, '.product-image-gallery > a > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join({}.fromkeys(images).keys()) # detail N/A return product
def parse_product(self, driver): product = of_spider.empty_product.copy() # title element = of_utils.find_element_by_css_selector( driver, '.details_info_title>h1') if element: product['title'] = element.text.strip() else: raise Exception('Title not found') # code element = of_utils.find_element_by_css_selector( driver, '.details_info_code') if element: product['code'] = element.text.strip() # price_cny element = of_utils.find_element_by_css_selector( driver, '.details_price_new>span') if element: product['price_cny'] = of_utils.convert_price( element.text.strip().replace(',00', '').replace('.', '')) # images elements = of_utils.find_elements_by_css_selector( driver, '.MagicZoom > figure > img') images = [element.get_attribute('src').strip() for element in elements] product['images'] = ';'.join(images) # detail element = of_utils.find_element_by_css_selector( driver, '.details_info_descr') if element: product['detail'] = element.text.strip() return product