Я пытаюсь l oop внутри класса offer-list-wrapper
, который имеет несколько элементов внутри, почти все элементы являются общими на веб-странице для поиска A и поиска B (я очищаю сканер).
Как вы можете видеть на обоих изображениях, offer-list-wrapper
является общим элементом.
Я хочу извлечь данные, которые находятся внутри каждого organic-offer-wrapper organic-gallery-offer-inner
и organic-list-offer-inner m-gallery-product-item-v2
классов. Что очень легко сделать, если вы поместите в них oop с помощью селектора CSS, например:
for element in driver.find_elements_by_css_selector('.organic-list-offer-inner.m-gallery-product-item-v2'):
Таким образом, вы можете получить каждый элемент внутри них.


НО проблема начинается здесь: мне нужно l oop внутри обоих случаев с ОДНИМ универсалом c код, который l oop внутри обоих классов, и в случае появления нового класса он должен l oop внутри него.
Позвольте мне показать вам мой код:
for element in driver.find_elements_by_class_name('offer-list-wrapper'):
try:
item_name = element.find_element_by_class_name('organic-gallery-title__content').text
except:
item_name = np.nan
try:
price = element.find_element_by_class_name('gallery-offer-price').get_attribute('title').replace('$', '').replace(',', '')
min_order = element.find_element_by_class_name('gallery-offer-minorder').find_element_by_tag_name('span').text.replace(' Pieces', '').replace(' Piece', '').replace(' Units', '').replace(' Unit', '').replace(' Sets', '').replace(' Set', '').replace(' Pairs', '').replace(' Pair', '').replace('Boxes', '').replace('Box', '').replace('Bags', '').replace('Bag', '')
# separate min and max price
except:
price = np.nan
min_order = np.nan
Этот первый возвращает только первый элемент:
for element in driver.find_elements_by_css_selector('.organic-offer-wrapper.organic-gallery-offer-inner'):
try:
item_name = element.find_element_by_class_name('organic-gallery-title__content').text
except:
item_name = np.nan
try:
price = element.find_element_by_class_name('gallery-offer-price').get_attribute('title').replace('$', '').replace(',', '')
min_order = element.find_element_by_class_name('gallery-offer-minorder').find_element_by_tag_name('span').text.replace(' Pieces', '').replace(' Piece', '').replace(' Units', '').replace(' Unit', '').replace(' Sets', '').replace(' Set', '').replace(' Pairs', '').replace(' Pair', '').replace('Boxes', '').replace('Box', '').replace('Bags', '').replace('Bag', '')
# separate min and max price
except:
price = np.nan
min_order = np.nan
Этот второй возвращает только циклы внутри .organic-offer-wrapper.organic-gallery-offer-inner
(возвращая все нужные мне элементы), но не l oop внутри .organic-list-offer-inner.m-gallery-product-item-v2