从下拉列表中抓取产品

问题描述

所以我正在抓取具有不同版本(不同色调)的特定产品。我如何让它点击产品阴影并浏览该页面

这是一个示例链接https://www.target.com/p/maybelline-superstay-ink-crayon-lipstick-0-04oz/-/A-76581433?preselect=76151470#lnk=sametab

这是我的代码

driver.execute_script("window.scrollTo(0,300)")

# get each color button
time.sleep(4)
elems = driver.find_elements_by_class_name('VariationButton__StyledButtonWrapper-sc-1hf3dzx-0.dcQiPK')
if not elems:
    time.sleep(4)
    shade_btn = driver.find_elements_by_class_name("Button-bwu3xu-0.SelectBox__SelectButtonWithValidation-sc-6gt3w9-1.hUOeWC.kCheAN")[1]
    driver.execute_script("arguments[0].click();",shade_btn)
    # shade_btn.click()
    time.sleep(4)
    elems = driver.find_elements_by_class_name("Link-sc-1khjl8b-0.OptionLink-wl31ru-0.kdCHb.evmUhs")
    print(elems)
    time.sleep(4)
    btn = driver.find_elements_by_class_name("heading__Styledheading-sc-1m9kw5a-0.fhmjpN.h-text-center")[0]
    time.sleep(4)
    driver.execute_script("arguments[0].click();",btn)
    time.sleep(4)
    for elem in elems:
        # add all of the attributes to the line that will stay the same at the begining (we don't have to scrape these)
        time.sleep(4)
        line = df.Category[i]
        line += ',"' + df.Product[i] +  '"'
        line += ',"' + df.URL[i] +  '"'
        line += ',"' + df.Price[i]+  '"'
        line += ',"' + df.Description[i].replace('\n',' ') +  '"'
        time.sleep(4)
        elem.click()
        time.sleep(4)
        btn = driver.find_elements_by_class_name("heading__Styledheading-sc-1m9kw5a-0.fhmjpN.h-text-center")[0]
        time.sleep(4)
        driver.execute_script("arguments[0].click();",btn)
        time.sleep(4)
        shade_btn = driver.find_elements_by_class_name("Button-bwu3xu-0.SelectBox__SelectButtonWithValidation-sc-6gt3w9-1.hUOeWC.kCheAN")[1]
        driver.execute_script("arguments[0].click();",shade_btn)

        #ADD THE IMAGE URL
        j = 0
        found = False
        while(j < 5 and not found):
            try:
                img_panel = driver.find_element_by_class_name('slideDeckPicture')
                img_panel = img_panel.find_element_by_tag_name('img')
                img_url = img_panel.get_attribute('src')

                # img_urls.append(img_url)
                line += ',"' + img_url + '"'
                found = True
                break
            # if it can't find the image,it probably hasn't loaded. wait and try again.
            except:
                j += 1
                time.sleep(4)
                # img_urls.append('NO URL')
                # pass
        # if we've tried 5 times add no url
        if found == False:
            line += ',NO IMG URL'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...