По следующей ссылке: 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
Программы на Python
1732456095
Anonymous
По следующей ссылке: https://www.ifood.com.br/delivery/brasilia-df/oba-hortifruti---212-sul-asa-sul/8b66f111-576 6-409e-97aa-6034868aa230?corredor=4e10f079-d107-437b-b278-e71a964b444b&originArea=aisleMenu, Я хочу собрать информацию о ценах и описаниях товаров. Однако цена, отображаемая в этом разделе, часто является ценой не за килограмм, а за меньшие количества, например 500 граммов. Чтобы узнать цену за килограмм, мне нужно нажать на конкретный предмет, который я хочу забрать. Например, нажав на ссылку https://www.ifood.com.br/delivery/brasilia-df/oba-hortifruti---212-sul-asa-sul/8b66f111-5766-409e-97aa-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/brasilia-df/oba-hortifruti---212-sul-asa-sul/8b66f111-576 6-409e-97aa-6034868aa230?corredor=4e10f079-d107-437b-b278-e71a964b444b&originArea=aisleMenu. Затем код должен перемещаться по каждой отдельной ссылке на продукт, найденной по этому URL-адресу. С помощью цикла код должен собирать информацию о цене за килограмм и описании каждого товара.
Ниже представлена часть кода, которая собирает информацию об описании и цене на " основной" URL.
list = [
"https://www.ifood.com.br/delivery/brasilia-df/oba-hortifruti---212-sul-asa-sul/8b66f111-5766-409e-97aa-6034868aa230?corredor=4e10f079-d107-437b-b278-e71a964b444b&originArea=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()
Подробнее здесь: [url]https://stackoverflow.com/questions/78899135/how-to-collect-data-on-multiple-products-from-dynamically-generated-urls-using-s[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия