无法将2个元素与一个值为空的元素匹配

2024-05-18 14:51:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试匹配此网站上列出的产品的名称和销售数量属性:my site(作为示例) 但是,有些产品项没有销售数量元素。确切地说,该元素没有显示,因为该商店没有出售任何此类商品。 我试着将产品名称(@class='name\u product shop\u color\u hover')和销售数量(@class='s\u b')进行匹配。 以下是我的工作:

from selenium import webdriver
.......
element_name='//*[@class="name_product shop_color_hover"]'
element_price='//*[@class="current_price"]'
element_sold='//*[@class="s_b"]'
link='https://www.sendo.vn/shop/dungcuykhoa_tanphu/san-pham/?p=1'
browserdriver.get(link)
allrows_name=browserdriver.find_elements_by_xpath(element_name)
allrows_sold=browserdriver.find_elements_by_xpath(element_sold)
for row_name, row_sold in zip(allrows_name,allrows_sold):
    print( row_name.text +":::"+row_sold.text)
print("program end")

这是可行的,但匹配结果不正确,因为allrows\u sell中缺少值(null值)

Túi chườm đá lạnh size lớn:::2
Combo 6 cây giấy lau mặt trong thẩm mỹ, spa:::3
Thước đo mắt - compa mắt:::7
Bộ giác hơi không dùng lửa Duy Thành YGH02 - Valy đen:::3
Máy đo tiểu đường OGCare chính hãng tặng 3 hộp que:::6
Hộp 25 que thử đường huyết OGCare date xa:::33
Túi chườm nóng lạnh đa năng Hướng Dương cỡ đại:::1
Bộ giác hơi không dùng lửa Duy Thành valy nâu:::2
Kính bảo hộ Spider chống bụi gió an toàn cho bé:::2
Máy đo đường huyết OGCare kèm 25 que thử:::15
Vớ y khoa, vớ tĩnh mạch Đức chính hãng - Vớ gối:::19
Vớ y khoa phòng ngừa và điều trị suy giãn tĩnh mạch vùng gối Jiani - Ý:::11
Vớ y khoa phòng ngừa và điều trị giãn tĩnh mạch Jiani - Vớ gối:::4
program end

如您所见,它在第三行之前一直运行良好,在第三行中,allrows\u sell中没有销售数量的值 现在我想让程序在任何销售数量为空的商品中输入“0”(@class='s\u b')

请帮我找到另一个解决匹配问题的方法。谢谢


Tags: name数量elementchshopngclassrow
1条回答
网友
1楼 · 发布于 2024-05-18 14:51:24

我刚刚更改了sell元素xpath,并检查了文本值是否为null '0'

element_name='//*[@class="name_product shop_color_hover"]'
element_price='//*[@class="current_price"]'
element_sold='//div[@class="social_box"]'
link='https://www.sendo.vn/shop/dungcuykhoa_tanphu/san-pham/?p=1'
browserdriver.get(link)
allrows_name=browserdriver.find_elements_by_xpath(element_name)
allrows_sold=browserdriver.find_elements_by_xpath(element_sold)

for row_name, row_sold in zip(allrows_name,allrows_sold):
    if row_sold.text!='':

       print( row_name.text +":::"+row_sold.text)
    else:

        print(row_name.text + ":::" + "0")
print("program end")

输出:

Túi chườm đá lạnh size lớn:::2
Combo 6 cây giấy lau mặt trong thẩm mỹ, spa:::3
Thước đo mắt - compa mắt:::0
Bộ giác hơi không dùng lửa Duy Thành YGH02 - Valy đen:::7
Máy đo tiểu đường OGCare chính hãng tặng 3 hộp que:::0
Hộp 25 que thử đường huyết OGCare date xa:::3
Túi chườm nóng lạnh đa năng Hướng Dương cỡ đại:::6
Bộ giác hơi không dùng lửa Duy Thành valy nâu:::33
Kính bảo hộ Spider chống bụi gió an toàn cho bé:::1
Máy đo đường huyết OGCare kèm 25 que thử:::2
Vớ y khoa, vớ tĩnh mạch Đức chính hãng - Vớ gối:::2
Vớ y khoa phòng ngừa và điều trị suy giãn tĩnh mạch vùng gối Jiani - Ý:::15
Vớ y khoa phòng ngừa và điều trị giãn tĩnh mạch Jiani - Vớ gối:::19
Vớ y khoa phòng ngừa và điều trị giãn tĩnh mạch Jiani - Vớ đùi:::11
Máy massage Mini Squirrel V-555 nhập khẩu chính hãng Hàn Quốc:::4
program end

Process finished with exit code 0

相关问题 更多 >

    热门问题