首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Selenium在电子商务页面(产品样本颜色)上刮取嵌套元素

使用Selenium在电子商务页面(产品样本颜色)上刮取嵌套元素
EN

Stack Overflow用户
提问于 2020-05-04 19:45:52
回答 1查看 66关注 0票数 1

当swatch元素嵌套且没有类名时,我试图从Ulta的网站上刮取产品样本颜色名称('alt')和img。我的抓取结果包括其他我不想要的元素,但是我不确定(对于python和scraping来说也是非常新的)如何删除它们。

网址:https://www.ulta.com/born-this-way-undetectable-medium-full-coverage-foundation?productId=xlsImpprod12621017

html的屏幕截图:

我的代码:

代码语言:javascript
运行
复制
driver = webdriver.Chrome(chromedriver)
driver.get(url)
time.sleep(10)

shade_names = []

elems = driver.find_elements_by_class_name('Loader__small')
for elem in elems:
    img = elem.find_element_by_tag_name('img')
    name = img.get_attribute('alt').encode('utf-8')
    shade_names.append(name)

print(shade_names)

我的代码的结果(我不想要“Cloud(最美丽的w/玫瑰色暗含)”之前的文本和尾部的引号):

“乌尔塔美容系列”、“香奈儿”、“安娜斯塔西娅·贝弗利山”、“克莱尼克”、“城市衰败化妆品”、“班布尔和邦布尔”、“汤姆·福特”、“塔特化妆品”、“化妆革命”、“基尔”、“Morphe”、“过面”、“Fan fave”、“过度出生”这种无法察觉的媒介-全覆盖基金会-自然贝格(自然贝格) #0',“以这种方式出生,无法检测到的介质到全覆盖基础“以这种方式出生,无法检测到的中至全覆盖基础“杏仁(非常白皙的w/金暗音)”、“海燕(非常公平的w/玫瑰色暗音)”、“瓷(非常公平的w/中性暗音)”、“香草(中等/中性的暗音)”、“裸(很浅的w/玫瑰色的暗音)”、“暖裸(很轻的w/中性的暗音)”、“轻的贝格(轻的w/中性的暗音)”、“选择的自然的(轻的w/中性的暗音)”、“金色的贝格(淡的/金色的暗音)”,“Warm拜格(中音/中性暗音)”、“沙(中/金暗音)”、“金色(中色调/玫瑰色暗音)”、“普拉琳(中褐色/金色底色)”、“暖砂(褐色/金色底色)”、“蜂蜜(褐色/中性色调)”、“焦糖(富褐色/中性色调)”、“布鲁莱(深褐色/金色色调)”、“摩卡(黄褐色/玫瑰色)”,‘'Butter (最富有的棕/金暗音)’、'Maple (深w/中性暗音)‘、’板栗(深w/金暗音)‘、’柴(深w/金暗)‘、'Mahogany (非常深的w/金暗音)’、‘香料朗姆(非常深的w/玫瑰色暗音)’、‘榛子(最深的w/玫瑰色暗音)’、'Cocoa (最深的w/中性的暗音)‘、'Tiramisu (最深的w/金色的暗音) ',“甜香朗姆(非常深的w/玫瑰色的暗音)”,“榛子(最深的w/金色的暗音)”,“Cocoa(最深的w/中性的暗音)”,“Tiramisu(最深沉的w/金暗音)”,“'Sable (丰富的w/玫瑰色暗音)”、“Truffle(丰富的w/金暗音)”、“Ganache(最富有的w/中性暗音)”、“”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-05 07:32:30

在您的time.sleep(10)行之后,我添加了以下部分代码。对我来说是起作用了。拜托,你也试试吧。

代码语言:javascript
运行
复制
time.sleep(10)

shade_names = []

elems = driver.find_elements_by_class_name('ProductSwatches__Cell')
for elem in elems:
    img = elem.find_element_by_tag_name('img')
    name = img.get_attribute('alt')
    name = name.split(' ')[0]
    shade_names.append(name)

print([x for x in shade_names if x])

对我来说,结果是:

“云”、“天鹅”、“雪”、“象牙”、“珍珠”、“杏仁”、“海边”、“瓷质”、“香草”、“裸体”、“温暖”、“光”、“自然”、“金色”、“温暖”、“沙子”、“金色”、“普拉琳”、“温暖”、“亲爱的”、“焦糖”、“布鲁利”、“摩卡”、“蝴蝶”、“枫树”,“栗子”、“柴”、“桃花心”、“香料”、“榛子”、“可可”、“提拉米苏”、“塞布尔”、“松露糖”、“甘纳奇”

我看到有36种颜色,所以反结果也是正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61600323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档