2016-09-14 3 views
1

Я пытаюсь скрести сайт для моего проекта, но у меня возникают проблемы с слом имен изображений с помощью Selenium из этого websitePython Селена получить имя изображения с сайта

enter image description here

с кодом ниже, Я могу использовать селен, чтобы вернуть мне данные text с сайта

results = driver.find_elements_by_css_selector("li.result_content") 

for result in results: 
    company_name = result.find_element_by_tag_name("h3").get_attribute("innerText") 
    product_name = result.find_element_by_id('sProdName').get_attribute("innerText") 
    product_paymode = result.find_element_by_id('paymode').get_attribute("innerText") 

мне сказали, чтобы использовать get_attribute("innerText"), потому что есть несколько предметов, скрытых и get_attribute("innerText") поможет мне получить скрытые предметы. (Правда, это работает)

мой вопрос: как я очистить класс prod-feature-icon, чтобы сообщить мне, если это изображение active или нет?

+0

Я обновил свой ответ – e4c5

ответ

2

Почему бы не использовать find_element_by_class_name?

feature_icon = result.find_element_by_class_name("prod-feature-icon") 

Однако стоит отметить, что объект с таким именем класса фактически UL в нем есть несколько изображений, так что вы должны решить, какие изображения именно вы хотите работать с от этого. В качестве альтернативы вы можете перебирать их с

for item in feature_icon.find_elements_by_tag_name('img'): 
    print(item.get_attribute('src')) 

, конечно, это не будет еще сказать, является ли активным или неактивным элемент, потому что, кажется, не диктоваться CSS, а штриховкой изображения

+0

Не должно быть 'find_elements_by_class_name' –

+0

Ну есть два метода, когда вы хотите итерации по всему набору, вы используете множественное число, когда вам не нужен, какой элемент вы получаете или вы уверены, что есть только один, вы используете единственное – e4c5

+0

Я пробовал, но он, кажется, печатает «Нет» вместо имени изображения –

Смежные вопросы