Используйте Python для сбора данных с сайтов, заканчивающихся на aspx.

Вопрос или проблема

https://blue.kingcounty.com/Assessor/eRealProperty/default.aspx

Это веб-сайт, который я хочу собрать.

Например, я ввожу 500 4TH AVE
Я просто хочу получить номер участка и размер лота.

Я пытался изменить ссылку

https://blue.kingcounty.com/Assessor/eRealProperty/search=5004THAVE.aspx

Я думаю, что это не сработало, пожалуйста, продемонстрируйте. Спасибо.

Вы можете использовать Selenium для этого сбора данных. Когда вы впервые перейдете по этой ссылке, вам предложат принять условия, и вам нужно будет отметить чекбокс. После этого вас перенаправит на страницу, просто передайте ввод в ваш текущий URL и прочитайте HTML-элемент с помощью XPath или regex.

.

Ответ или решение

Способы скрапинга данных с веб-сайтов на Python: пример с использованием Selenium

Введение

Скрапинг веб-данных становится все более распространённым методом извлечения информации из интернет-ресурсов. В этой статье мы рассмотрим, как использовать Python для сбора данных с веб-сайта, который заканчивается на ".aspx", в частности, для извлечения номера участка и размера земельного участка с сайта оценки недвижимости округа Кинг.

Необходимые инструменты

Для успешного выполнения задачи нам понадобятся следующие библиотеки Python:

  • Selenium: для автоматизации взаимодействия с веб-страницами.
  • Beautiful Soup: для парсинга HTML-страниц (если необходимо).
  • Pandas: для удобства работы с данными (опционально).

Перед началом убедитесь, что у вас установлены эти библиотеки. Их можно установить с помощью pip:

pip install selenium beautifulsoup4 pandas

Также нужно будет скачать драйвер для браузера, который вы собираетесь использовать (например, ChromeDriver для Google Chrome) и добавить его в PATH.

Шаг 1: Подготовка кода

Начнем с основ кода, чтобы инициализировать драйвер Selenium и открыть необходимую веб-страницу:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# Инициализация драйвера
driver = webdriver.Chrome()  # Замените на 'webdriver.Firefox()' для Firefox

# Переход на целевую страницу
driver.get("https://blue.kingcounty.com/Assessor/eRealProperty/default.aspx")

# Ждем, пока страница загрузится и пользователь примет условия
time.sleep(5)  # Подождите 5 секунд для выполнения действий пользователя

# Ожидание, пока пользователь примет условия
input("Нажмите Enter после того, как вы примете условия на странице...")

Шаг 2: Ввод данных и получение результатов

После того как пользователь примет условия, мы можем передавать адрес и извлекать необходимые данные:

# Находим поле ввода адреса и вводим адрес
search_box = driver.find_element(By.ID, "txtParcelNumber")
search_box.send_keys("500 4TH AVE")  # Вводим адрес
search_box.send_keys(Keys.RETURN)  # Нажимаем Enter

# Ждем, пока результаты загрузятся
time.sleep(5)

# Извлечение данных о номере участка и размере участка
parcel_number_element = driver.find_element(By.XPATH, "//td[contains(text(), 'Parcel Number')]/following-sibling::td")
lot_size_element = driver.find_element(By.XPATH, "//td[contains(text(), 'Lot Size')]/following-sibling::td")

parcel_number = parcel_number_element.text
lot_size = lot_size_element.text

print(f"Номер участка: {parcel_number}")
print(f"Размер участка: {lot_size}")

# Закрытие браузера
driver.quit()

Шаг 3: Обработка ошибок

Не забудьте добавить обработку исключений, чтобы ваш код не завершался ошибкой, если элементы не будут найдены:

try:
    # Код для извлечения данных
except Exception as e:
    print(f"Произошла ошибка: {e}")

Заключение

Используя Selenium, вы можете эффективно взаимодействовать с веб-сайтами, которые требуют пользовательского ввода или согласия на условия использования. Данный шаблон можно модифицировать под ваши конкретные требования для извлечения других данных. Однако стоит помнить, что скрапинг данных должен проводиться с соблюдением правил и условий использования сайта.

Важные замечания

  • Убедитесь, что вы уважаете файлы robots.txt сайта и его условия использования.
  • Старайтесь не делать слишком частые запросы на один и тот же сайт, чтобы избежать блокировок.

Этот подход позволяет извлекать актуальные данные с помощью Python, что может эффективно использоваться в различных сферах, включая анализ данных и разработку приложений.

Оцените материал
Добавить комментарий

Капча загружается...