Данный проект является веб-парсером/скраппером сайта авито в категории 3-х комнатные квартиры в определенном ценовом диапазоне. Категорию поиска можно также заменить, по сути парсер универсальный. Скрипт использует библиотеку Selenium и ChromeDriver для имитации действий реального человека и избежания блокировки запросов (в случае использования других библиотек, типа request - авито блокирует запросы или данные со страницы не полностью прогружаются).
Схема работы следующая: парсер переходит сначала на общую страницу объявлений в заданной тематике, затем открывает по очереди каждое объявление в новой вкладке и парсит информацию:
- название лота;
- цена;
- ссылка на объявление;
- делает скриншот страницы.
После этого все эти данные сохраняются в базе данных PostgreSQL.
- Python - версия 3.10
- Selenium - версия 4.7.2
- fake-useragent - версия 1.1.1
- pymysql - версия 1.0.2
- python-dotenv - версия 0.21.0
- loguru - версия 0.6.0
- psycopg2-binary - версия 2.9.5
- Склонируйте проект с GitHub:
git clone https://github.com/Gips22/selenium_python.git
- Установите
poetry
(если он еще не установлен). - Установите зависимости из файла pyproject.toml:
poetry install
- Скачайте Chromedriver, соответствующий версии вашего браузера Chrome:
https://chromedriver.storage.googleapis.com/index.html
- Создайте файл
.env
и определите в нем переменные окружения, необходимые для работы проекта Все конфиги определены вconfig.py
. - Запустите парсер, выполнив команду
python main.py
.