Невозможно сопоставить 2 элемента с одним элементом, имеющим нулевое значение - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь сопоставить название и атрибут проданного количества товара, указанного на этом сайте: мой сайт (в качестве примера) Тем не менее, есть некоторые товары, которые не продали количественный элемент. Точно, этот элемент не отображается, потому что этот магазин не продал такой предмет. Я пытаюсь найти и сопоставить название продукта (@ class = 'name_product shop_color_hover') и проданное количество (@ class = 's_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_sold

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_sold Теперь я хочу, чтобы программа набрала «0» для любого товара с нулевым количеством проданных товаров (@ class = 's_b')

Плз, помогите мне найти другое решение для этой проблемы соответствия. Спасибо!

1 Ответ

1 голос
/ 30 мая 2019

Я только что изменил проданный элемент 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...