Metadata-Version: 2.5
Name: avito-parser-free
Version: 0.1.1
Summary: Бесплатный парсер объявлений с Avito с сохранением в JSON
Project-URL: Homepage, https://github.com/Sudox00/AvitoParser
Project-URL: Repository, https://github.com/Sudox00/AvitoParser
Project-URL: Issues, https://github.com/Sudox00/AvitoParser/issues
Author-email: soketpy <vinks.gan@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: playwright>=1.40.0
Description-Content-Type: text/markdown

# AvitoParserFree

Библиотека для парсинга объявлений с Avito.ru с использованием Playwright.

## 📌 Особенности

- Парсинг объявлений по городу, запросу и странице
- Сбор полной информации об объявлении (заголовок, цена, описание, продавец, доставка и т.д.)
- Сохранение результатов в JSON базу данных
- Поддержка куки для обхода ограничений
- Поддержка пользовательского User-Agent
- Блокировка загрузки изображений для ускорения работы

## 🚀 Установка

```bash
pip install avito-parser-free
```
После установки необходимо установить браузеры для Playwright:

```bash
playwright install chromium
```
## 📖 Использование
```python
from avito_parser import AvitoPars, Database

# Создаем парсер
parser = AvitoPars(
    headless=True,          # False - показать окно браузера
    slow_mo=0,              # Замедление в миллисекундах (по умолчанию 0)
    log=True,               # Логирование (вкл. по умолчанию)
    logging_path="avitopars_log.log",  # Путь к файлу логов
    logging_level=logging.INFO         # Уровень логирования
)

# COOKIES от Avito (опционально, но с ними больше шансов обойти блокировку)
cookies = {
    # ваши куки
}

# User-Agent (опционально)
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

# Пример использования №1: Сохраняем одну страницу
city_url = "tver"
query = "nokia 3310"
page = 1
local_priority = 1  # 1 - сначала объявления с указанного города, 0 - сначала рекомендуемые

db = Database(path=f"{city_url}_{page}_{local_priority}.json")
results = parser.search(city_url, query, page, local_priority, cookies, user_agent)

for item in results:
    db.write(item)

print("✅ Данные сохранены в базу данных")

# Пример использования №2: Сохраняем несколько страниц
city_url = "tver"
query = "nokia 3310"
local_priority = 1

db = Database(path=f"{city_url}_1_5_{local_priority}.json")

for page in range(1, 6):  # Сохраняем с 1 по 5 страницу
    results = parser.search(city_url, query, page, local_priority, cookies)
    for item in results:
        db.write(item)
    print(f"✅ Страница {page} сохранена!")

print("✅ Все данные сохранены в базу данных")
```
## 📁 Структура данных
Каждое объявление содержит следующие поля:

```json
{
    "title": "Nokia 3310, 1 SIM",          // Заголовок
    "price": "2 500 ₽",                    // Цена
    "seller": "Имя продавца",              // Продавец
    "state": "Б/у",                        // Состояние
    "grade": "4.5",                        // Оценка
    "date": "Вчера",                       // Дата публикации
    "description": "Телефон в хорошем состоянии", // Описание
    "delivery": "Доставка от 2 дней",      // Доставка
    "url": "https://www.avito.ru/..."      // Ссылка на объявление
}
```
