Находит объявления на avito.ru по ключевым словам. Присылает уведомления в telegram и сохраняет результат в csv файл.
Также есть бесплатные парсеры Авито от других разработчиков: https://dialoss.github.io/avito/
- Фильтрация по гео. Если по Вашей ссылке мало объявлений, Авито добавит предложения из других регионов, что нам обычно не нужно. Скрипт будет проверять вхождение "Вашего адреса" в адрес в объявлении (пример: входит ли "краснодар" в "Краснодар ул. Авитолога 69", регистр здесь не важен), если не входит - уведомление не придет и в результаты это тоже не запишется. Данная опция не обязательна к заполнению.
- Добавлена кнопка удаления текущего адреса, это удобно т.к. адреса длинные
- Режим отладки: в данном режиме Вы будете видеть окно браузера. Полезно, чтобы понять, что идет не так
- Разрешено изменение размеров окна
- Обнаружения бана по IP при загрузке основной страницы (раньше только на отдельной странице объявления)
- Другие мелкие доработки
- Проблемы с отображением окна парсера, протестировано на Linux Mint и Windows 10
- Ошибки связанные с кодировками
- Ошибка при загрузке скрипта, если url был с русскими буквами и был внесен вручную в settings.ini
- Ошибка при нажатии на кнопку "Стоп"
- Скрипт иногда не видел кнопку "Далее"
- Другие мелкие баги
Очень Важно!!! устанавливать seleniumbase именно такой версии seleniumbase==4.16.2. Я знаю, что есть версия посвежее, но в ней есть баг, он связан с работой драйвера при переключении вкладок. Я в ближайшее время заведу issue на сайте разработчика, но там совсем непонятно чей именно это баг: seleniumbase, selenium, undetected_chromedriver или chrome, всё слишком завязано друг на друга.
Если Вы хотите, чтобы Avito Parser дальше развивался и оставался бесплатным - поддержите проект, на голом энтузиазме далеко не уедешь. Заранее спасибо! Поддержать можно по ссылке: https://yoomoney.ru/to/410014382689862 или простым переводом 2204 1201 0103 5539
- Исправлена ошибка при работе с Chrome 115, обновите зависимости. При установке зависимостей используйте виртуальное окружение
- Исправлены ошибки касательно минимальной и максимальной цены при запуске без графического интерфейса
- Новый графический интерфейс, теперь всё стало выглядеть более современно. Спасибо https://github.com/Genone22. Не забудьте обновить зависимости
- Дублирование объявления при отправке в telegram, если Вы нажимали кнопку test
- Иногда не отправлялись логи в telegram, хотя данные были заполнены и кнопка test работала
- Определение версии установленного браузера теперь переложена на Seleniumbase
- Кодировки
- Переход на Seleniumbase (не забудьте обновить зависимости)
- Ускорена работа
- Улучшена стабильность
- Проверка keywords теперь работает и для названия объявления (ранее проверялось только описание)
- Обнаружение бана по IP со стороны Авито
- Ошибка при попытке прочитать описание (selector "[class*='item-description']")
- Дублирование объявления при отправке в telegram
- Иногда не работала кнопка test (тестирование отправки сообщений в telegram) без перезапуска скрипта
- Другие мелкие баги
-
С сайта парсится теперь больше информации: "Название", "Цена", "Ссылка", "Описание", "Просмотров", "Дата публикации", "Продавец"
-
Результат сохраняется в csv файл в папке result (более удобно работать)
-
Браузер использует случайный юзер-агент из файла user_agent_pc.txt, можете добавить большее количество самостоятельно (но это необязательно)
-
Сильно улучшена стабильность работы
-
Оставлена возможность запуска скрипта без графического интерфейса, все настройки задаются в файле settings.ini
-
Увеличено максимальное количество уже просмотренных сообщений до 5000 (хранится в файле viewed.txt и очищается автоматически при достижении лимита)
-
Увеличено окно вывода результата и переделан сам вывод
- Исправлены старые ошибки и добавлены новые)
- Добавлено поле минимальная цена, теперь можно указывать верхнюю и нижнюю границу цены
- Исправлен баг, связанный с отсутствием viewed.txt
- Улучшена стабильность работы
- Добавлена возможность запуска скрипта без графического интерфейса, все настройки задаются в файле settings.ini. После нужно запустить parser_cls.py, таким образом, удобно запускать скрипт на удаленном сервере
- Исправлена ошибка когда на страницы нет кнопки "Далее"
- Добавлено поле максимальная цена, теперь можно искать не только бесплатные объявления
Первая версия (создание самого парсера) https://youtu.be/pbzPkZcVOx0
Вторая версия (обзор нововведений: графический интерфейс, уведомления и как это работает) https://youtu.be/OjId94hYWnc
Для работы требуется Python 3.5+. Скопируйте проект и установите зависимости:
pip install -r requirements.txt
У Вас также должен быть установлен браузер Google Chrome любой более менее свежей версии. Скрипт тестировался на версиях 108-112
Запустите AvitoParser.py
python AvitoParser.py
- Перейдите в диалог с https://t.me/BotFather
- Введите команду /newbot, придумайте name и username для бота
- Скопируйте token и вставьте в первое поле скрипта
- Перейдите в диалог с Вашим ботом по ссылке из прошлого шага, ссылка имеет формат: t.me/your_bot
- Напишите @get_id_bot и скопируйте chat_id вашего диалога, вставьте его во второе поле данного скрипта
- При нажатии на кнопку Test в скрипте, Вам должно прийти сообщение. Если нет, перезагрузите скрипт и попробуйте еще раз
- Удобное управление с помощью графического интерфейса
- Проверка новых объявлений
- Установка количества проверяемых страниц
- Установка паузы между повторами
- Уведомление в telegram как опция, также результат сохраняется в result/keyword*.json и выводится в окно
- Хранение уже просмотренных объявлений, т.е. дубли игнорируются
- Присылает только объявление, у которых цена = 0, рекламные объявления отсекаются
- Установка слов-ключей, которые должны быть в описании объявления
- Больше не нужно вводить версию Chrome, скрипт сам её определит (работает для Linux и Windows)
При обнаружении ошибок, ждем в https://github.com/Duff89/parser_avito/issues. Пожалуйста, указывайте не только ошибку, но и информацию о Вашей ОС, версии скрипта, тип и версию браузера и способ запуска. Для прямой связи с автором, пишите: [email protected]
Ваша поддержка очень важна для дальнейшего и регулярного развития данного скрипта. Поддержать можно по ссылке: https://yoomoney.ru/to/410014382689862 или простым переводом 2204 1201 0103 5539. Заранее спасибо
Если понадобятся хорошие прокси для подобных скриптов, рекомендую: https://proxy6.net/?r=54545 (купон для скидки SdSq8wCwJA)