По следующей ссылке: https://www.ifood.com.br/delivery/brasi ... 66f111-576 6-409e-97aa-6034868aa230?corredor=4e10f079-d107-437b-b278-e71a964b444b&originArea=aisleMenu, Я хочу собрать информацию о ценах и описаниях товаров. Однако цена, отображаемая в этом разделе, часто является ценой не за килограмм, а за меньшие количества, например 500 граммов. Чтобы узнать цену за килограмм, мне нужно нажать на конкретный предмет, который я хочу забрать. Например, нажав на ссылку https://www.ifood.com.br/delivery/brasi ... -6034868aa 230?corredor=4e10f079-d107-437b-b278-e71a964b444b&originArea=aisleMenu&item=c2fd050a-5f7d-42be-8cfb-e5eea854599d, где идентификатор продукта добавляется в конец ссылки раздела с помощью &item=c2fd050a-5f7d-42be-8cfb-e5eea854599d, что позволяет мне получить доступ к конкретной странице продукта и получить цену за килограмм (Preço do quilo) и описание. Чего я пытаюсь сделать, но не могу достичь, так это предоставить коду Selenium доступ к каждой ссылке на продукт на основном URL-адресе, ввести URL-адрес конкретного продукта и собрать информацию о цене за килограмм и описании, когда эта информация доступна.< /p>
Я хочу, чтобы код имел доступ к основному URL-адресу: https://www.ifood.com.br/delivery/brasi ... 66f111-576 6-409e-97aa-6034868aa230?corredor=4e10f079-d107-437b-b278-e71a964b444b&originArea=aisleMenu. Затем код должен перемещаться по каждой отдельной ссылке на продукт, найденной по этому URL-адресу. С помощью цикла код должен собирать информацию о цене за килограмм и описании каждого товара.
Ниже представлена часть кода, которая собирает информацию об описании и цене на " основной" URL.
list = [
"https://www.ifood.com.br/delivery/brasi ... =aisleMenu"]
for i in lista:
try:
driver.get(i)
time.sleep(1)
scrolls = 5
while scrolls > 0:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
time.sleep(1)
scrolls -= 1
elem = driver.find_element(By.TAG_NAME, "body")
elem.send_keys(Keys.END)
elem.send_keys(Keys.END)
elem.send_keys(Keys.END)
time.sleep(1)
items = driver.find_elements(By.CLASS_NAME, 'product-card-content')
for item in items:
descricao = item.find_element(By.CLASS_NAME, 'product-card__description').get_property("innerHTML")
try:
preco = item.find_element(By.CLASS_NAME, 'product-card__price').get_property("textContent")
except:
preco = ''
item_data = {'descricao': descricao, 'preco': preco}
print(json.dumps(item_data, ensure_ascii=False))
except (TimeoutException, WebDriverException) as e:
print(f"Erro ao acessar o link {i}: {str(e)}")
except Exception as e:
print(f"Erro inesperado ao processar o link {i}: {str(e)}")
driver.quit()
Подробнее здесь: https://stackoverflow.com/questions/788 ... ls-using-s
Как собрать данные о нескольких продуктах из динамически генерируемых URL-адресов с помощью Selenium? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Совместное использование динамически генерируемых свойств между родственными модулями
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как перенаправить одну структуру URL-адресов на другую структуру URL-адресов?
Anonymous » » в форуме Php - 0 Ответы
- 125 Просмотры
-
Последнее сообщение Anonymous
-