Я счищаю продукты с веб-страницы, используя Selenium (хром).Некоторые продукты содержат таблицу питания, некоторые нет.Я сделал блок try/except
, чтобы найти элемент, или продолжаю, если это не так.Селену требуется + -100 секунд, чтобы разобраться с тем фактом, что элемент не найден.Можно ли как-нибудь ускорить этот процесс?
P_LIST = []
for i in yum:
start_time = time.time()
NEW_DICT = {}
TITLE = ""
i = "".join(i)
driver.get(i)
TITLE = driver.find_element_by_xpath('//*[@id="app"]/main').get_attribute('title')
NEW_DICT["url"] = i
NEW_DICT["name"] = TITLE
print("Found URL and NAME in: " + str((time.time() - start_time)) + " seconds. Proceeding..")
##############################################################################################
start_time = time.time()
try:
x = driver.find_element_by_class_name('product-info-content-block')
x = x.find_element_by_tag_name('p').text
NEW_DICT["weight/amount"] = x
except NoSuchElementException:
print('no weight/amount found.')
print("Found WEIGHT/amount in: " + str((time.time() - start_time)) + " seconds. Proceeding..")
##############################################################################################
start_time = time.time()
try:
NUTRITION_TABLE = driver.find_element_by_class_name('product-info-nutritions__table')
ENERGY = NUTRITION_TABLE.find_elements_by_tag_name('tr')
for i in ENERGY:
A = i.find_elements_by_tag_name('td')
UNIT = A[0].text
VALUE = A[1].text
NEW_DICT[UNIT] = VALUE
except NoSuchElementException:
print('No nutrition table found.')
print("Found (NO) NUT TABLE in: " + str((time.time() - start_time)) + " seconds. Proceeding..")
P_LIST.append(NEW_DICT)
print(NEW_DICT)
print(P_LIST)
Вывод:
Found URL and NAME in: 1.0494945049285889 seconds. Proceeding..
Found WEIGHT/amount in: 0.3859684467315674 seconds. Proceeding..
No nutrition table found.
Found (NO) NUT TABLE in: 100.06239700317383 seconds. Proceeding..
Заранее спасибо.Я учусь.