Парсер на Python возвращает пустой список (я думаю, это проблема выбора класса HTML)Python

Программы на Python
Ответить
Anonymous
 Парсер на Python возвращает пустой список (я думаю, это проблема выбора класса HTML)

Сообщение Anonymous »

Идея такова: я хочу собрать название квартиры и ее цену в виде списка для каждой квартиры на веб-сайте.
Я сделал простой парсер на Python, но, похоже, я не могу получить никаких значений, так как он возвращает пустой список.
Мое предположение: я просто не могу найти правильный класс/контейнер, содержащий эту информацию, поэтому он возвращает пустой список.

Код: Выделить всё

# Importing selenium, CSV, and time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from bs4 import BeautifulSoup
import csv
import time
from webdriver_manager.chrome import ChromeDriverManager

# Running the browser in the background without GPU and Sandbox
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')

# Using Service and CDM to specify the driver path
service = Service(ChromeDriverManager().install())

# Initializing the driver
driver = webdriver.Chrome(service=service)

# Opening the developer's URL
print("Opening the page...")
driver.get('https://etalongroup.ru/msk/object/voxhall/')
print("The page is opened.")

# Delay for the page to fully load
time.sleep(30)

# Getting the HTML
page_source = driver.page_source

# Closing the driver
driver.quit()

# Parsing HTML with bs4
soup = BeautifulSoup(page_source, 'html.parser')

# List with apartment data
apartments = []

# Searching for prices in  text-scarlet
price_elements = soup.find_all('span', class_='th-h4 text-scarlet')

# Searching for titles in  'aria-label'
title_elements = soup.find_all('div', {'aria-label': True})

# Collecting data
for price_element, title_element in zip(price_elements, title_elements):
price = price_element.text.strip()
title = title_element['aria-label'].strip()
apartments.append({'Title': title, 'Price': price})

print(apartments)

# Script completion message
print("The script has finished executing.")
Я ожидаю взамен список или словарь, который будет проходить через веб-сайт и собирать данные [n123-30 000 000] и т. д. для каждого представленного объекта

Подробнее здесь: https://stackoverflow.com/questions/793 ... ction-issu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»