У меня есть al oop, который проходит через теги на веб-сайте for product in products
. Каждый тег содержит строку, которую я очищаю и ссылаюсь на product.text
. У меня есть условие if
внутри l oop, проверяющее, содержит ли мой DataFrame
уже это product.text
str
.
if product.text == existing_products_file['Product_ID'].any():
Если True
, я continue
l oop и начать со следующего product
. Если False
, выполняется остальная часть l oop.
Я не могу заставить условие if
работать правильно. Я пробовал множество решений, включая, помимо прочего: превращение моего DataFrame
в Series
и использование .isin()
путем передачи list
, содержащего каждый product.text
; цикл по existing_products_file
, присвоение каждого значения переменной, а затем цикл по условию if
по каждой переменной; Я также попытался полностью переписать раздел, но безрезультатно.
Если у вас есть какие-либо советы по поводу того, чем вызвана проблема, или другой способ записи, дающий тот же результат, дайте мне знать .
Полный код и контекст ниже:
product_overview = driver.find_element_by_class_name('products')
product_box = product_overview.find_elements_by_class_name('product-number')
existing_products_file = pd.read_excel('path to excel doc', index=0, usecols=[1])
#
for product in product_box:
Do something
if product.text == existing_products_file['Product_ID'].any():
Do another thing
continue
else:
Do something else
- I ДОЛЖЕН ссылаться на мою таблицу Excel, которая содержит уже сохраненные идентификаторы продуктов
existing_products_file
- это DataFrame
, состоящий из индекса и столбца с заголовком «Product_ID» existing_products_file
не имеет значений Nan
, и каждый product.text
не является Nan
- Я хочу, чтобы условие
if
выполнялось True
, если product.text
str
соответствует любому str
в existing_products_file
столбце 'Product_ID' - Я использую
Selenium
для очистки веб-сайта
Если я пропустил или нуждается в дополнительных разъяснениях, дайте мне знать. Спасибо!