По заданному поисковому запросу я пытаюсь получить результаты, которые появляются на Amazon в категории Книги, и получить сведения о каждой книге по заданному поисковому запросу.
Я сталкиваюсь с проблемой, когда иногда мой код может найти результаты, а иногда он терпит неудачу. Проверив это дальше, я понял, что элементы иногда перечислены с тегами <li>
, а иногда с тегами <div>
.
Ниже вставлен элемент и фрагменты кода для того же элемента для резервного копирования моей претензии.
HTML с тегом <li>
:
<li id="result_0" data-asin="0128023074" class="s-result-item celwidget ">
HTML с тегом <div>
:
<div data-asin="0128023074" data-index="0" class="sg-col-20-of-24 s-result-item sg-col-0-of-12 sg-col-28-of-32 sg-col-16-of-20 sg-col sg-col-32-of-36 sg-col-12-of-16 sg-col-24-of-28" data-cel-widget="search_result_0"><div class="sg-col-inner">
Я все еще новичок в Selenium, поэтому, чтобы решить эту проблему, я использую следующий фрагмент кода, и я почти уверен, что есть лучший способ справиться с этим.
try:
book = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "result_0")))
book_detail(book, details)
except TimeoutException:
book = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//div[@data-index=\"0\" and @data-cel-widget=\"search_result_0\"]")))
book_detail_by_div(book, details)
Может кто-нибудь, пожалуйста, помогите мне понять, почему связанные с тегом изменения подобны этому, а также как справиться с такой ситуацией?