Skip to content

xailiry/avito-parser-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Avito Parser SDK (Standalone Template)

English | Русский


English

This is a clean, developer-friendly template for parsing Avito listings using Python and Playwright. It was extracted from a larger project to serve as a starting point for building custom Avito scrapers.

Features

  • Asynchronous: Built with asyncio and playwright for high performance.
  • Persistent Browser: Reuses the browser instance for multiple requests to save resources.
  • Stealth: Uses realistic user-agents and human-like delays to avoid detection.
  • Two-stage Parsing:
    1. search(): Rapidly scans search results and gathers basic item info.
    2. fetch_details(): Deep-dives into individual item pages to extract descriptions, parameters, and seller details.

Installation

  1. Install dependencies:
    pip install -r requirements.txt
  2. Install Playwright browser (Chromium):
    playwright install chromium

Quick Start

import asyncio
from avito_parser import AvitoParser, resolve_city_slug

async def main():
    parser = AvitoParser(headless=True)
    try:
        items = await parser.search("iphone 15", resolve_city_slug("москва"))
        if items:
            item = items[0]
            await parser.fetch_details(item)
            print(f"Title: {item.title}, Price: {item.price}")
    finally:
        await parser.stop()

if __name__ == "__main__":
    asyncio.run(main())

Русский

Чистый и удобный шаблон для парсинга объявлений Авито на Python с использованием Playwright. Подходит как основа для создания собственных парсеров, мониторинг-ботов или систем анализа цен.

Возможности

  • Асинхронность: Построен на asyncio и playwright для максимальной производительности.
  • Персистентный браузер: Один экземпляр браузера переиспользуется для всех запросов, что экономит память.
  • Стелс-технологии: Реалистичные User-Agent и имитация задержек человека для обхода блокировок.
  • Двухэтапный парсинг:
    1. search(): Быстрый сбор карточек из результатов поиска.
    2. fetch_details(): Заход внутрь каждого объявления для сбора полного описания, характеристик и данных продавца.

Установка

  1. Установите зависимости:
    pip install -r requirements.txt
  2. Установите браузер Playwright (Chromium):
    playwright install chromium

Быстрый старт

import asyncio
from avito_parser import AvitoParser, resolve_city_slug

async def main():
    parser = AvitoParser(headless=True)
    try:
        # Поиск по ключевому слову и городу
        items = await parser.search("iphone 15", resolve_city_slug("москва"))
        
        if items:
            item = items[0]
            # Получение детальной информации (описание, продавец)
            await parser.fetch_details(item)
            print(f"Название: {item.title}, Цена: {item.price}")
    finally:
        await parser.stop()

if __name__ == "__main__":
    asyncio.run(main())

Структура

  • avito_parser/core.py: Основная логика парсинга.
  • avito_parser/models.py: Модели данных (AvitoItem).
  • avito_parser/utils.py: Вспомогательные функции (обработка цен, маппинг городов).
  • main.py: Полноценный пример использования.

Disclaimer

Данный проект создан исключительно в образовательных целях. Пожалуйста, соблюдайте Условия использования Авито и политику robots.txt. Используйте ответственно.

About

Асинхронный парсер объявлений Авито на базе Playwright. Поддерживает поиск, сбор описаний и данных продавца.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages