Metadata-Version: 2.5
Name: avito-parser-free
Version: 0.1.0
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 базу данных
- Поддержка куки для обхода ограничений
- Блокировка загрузки изображений для ускорения работы

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

```bash
git clone https://github.com/Sudox00/AvitoParser.git
pip install playwright
playwright install chromium
```

## 📖 Использование
```python
import logging
from AvitoParserFree import AvitoPars, Database

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

# COOKIES от Avito, опционально, но с ним больше шансов на то, что вас не будет банить по IP
COOKIES = {
  #ваши куки :3
}

# user_agent, опционально
user_agent = "Юзер агент"

#Пример использования №1
#Сохраняем 5 страниц в файл tver_1_1.json
city_url = "tver" # Город для поиска
query = "nokia 3310" # Запрос
page = 1 # Страница
localPriority = 1 # # Если 1, то сначала объявления с указанного города, если 0, то сначала рекомендуемые

db = Database(path=f"{city_url}_{page}_{localPriority}.json")
it = ap.search(city_url, query, page, localPriority, COOKIES, user_agent)
for item in it:
    db.write(item)
print("✅ Данные сохранены в базу данных")


#Пример использования №2
#Сохраняем 5 страниц в файл tver_1_5_1.json
city_url = "tver" # Город для поиска
query = "nokia 3310" # Запрос
localPriority = 1 # # Если 1, то сначала объявления с указанного города, если 0, то сначала рекомендуемые

db = Database(path=f"{city_url}_1_5_{localPriority}.json")
for page in range(1, 6): # В данном случае сохраняем с 1 по 5 страницу
    it = ap.search(city_url, query, page, localPriority, COOKIES)
    for item in it:
        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/..."      # Ссылка на объявление
}
```
## Класс AvitoPars
Основной класс для парсинга объявлений.

## Методы
```python
search(city_url, query, page, localPriority, COOKIES={}, user_agent=None)
```
Выполняет поиск объявлений.
