Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
 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
Exemplo n.º 9
0
    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
Exemplo n.º 10
0
 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
Exemplo n.º 11
0
 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
Exemplo n.º 12
0
 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
Exemplo n.º 13
0
 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
Exemplo n.º 14
0
 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
Exemplo n.º 15
0
 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
Exemplo n.º 16
0
 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
Exemplo n.º 17
0
 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
Exemplo n.º 18
0
 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
Exemplo n.º 19
0
 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
Exemplo n.º 20
0
 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
Exemplo n.º 21
0
 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
Exemplo n.º 22
0
 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
Exemplo n.º 23
0
 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
Exemplo n.º 24
0
 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
Exemplo n.º 25
0
 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
Exemplo n.º 26
0
 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
Exemplo n.º 27
0
 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
Exemplo n.º 28
0
 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
Exemplo n.º 29
0
 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
Exemplo n.º 30
0
 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