Grab - фреймворк для парсинга сайтов — Grab 0.6.30 documentation

### Navigation

- index
- modules |
- next |
- Grab 0.6.30 documentation »

# Grab - фреймворк для парсинга сайтов

Warning

Документация на русском языке устарела и может содержать ошибки. Пожалуйста, используйте английскую документацию для получения актуальной информации о библиотеке Grab.

Grab - библиотека для работы с сетевыми документами. Основные области использования Grab:

> - извлечение данных с веб-сайтов (site scraping)
> - работа с сетевыми API
> - автоматизация работы с веб-сайтами, например, регистратор профилей на каком-либо сайте

Grab состоит из двух частей:

> - Главный интерфейс Grab для создания сетевого запроса и работы с его результатом. Этот интерфейс удобно использовать в простых скриптах, где не нужна большая многопоточность, или непосредственно в python-консоли.
> - Интерфейс Spider, позволяющий разрабатывать асинхронные парсеры. Этот интерфейс позволяет, во-первых, более строго описать логику парсера, во-вторых, разрабатывать парсеры с большим числом сетевых потоков.

## Grab сайты

- Официальный сайт: http://grablib.org
- Репозиторий на github: http://github.com/lorien/grab
- Группа рассылки: http://groups.google.com/group/python-grab

## Документация Grab

- Введение в Grab
- Установка библиотеки Grab
  - Установка под Linux
  - Установка под Windows
- Настройка Grab-объекта
  - Способы задания настроек
  - Клонирование
- Отладка запросов
  - Использование logging-системы
  - Нумерация запросов
  - Сохранение запросов и ответов в файлы
- Полный список настроек
  - Настройки
- Настройка HTTP-заголовков
  - Изменение HTTP-заголовков
  - Настройка User-Agent заголовка
  - Настройка Referer заголовка
- Методы HTTP-запросов
  - Выбор метода
  - POST-запрос
  - Отправка файлов
- Прочие возможности
  - Ограничение тела ответа
  - Сжатие ответа
  - HTTP-Авторизация
  - Работа с pycurl-дескриптором
  - 301 и 302 редиректы
  - Meta Refresh редиректы
- Кодировка документа
  - Для чего нужно знать кодировку
  - Алгоритм определения кодировки
  - Опция задания кодировки
- Работа с кукисами
  - Настройка кукисов
  - Работа с файлом кукисов
- Обработка сетевых ошибок, таймауты
  - Сетевые ошибки
  - Таймауты
  - Режим повторных запросов
- Работа с прокси-серверами
  - Настройка прокси-сервера
  - Работа со списками прокси
- Работа с ответом
  - Объект Reponse
- Технические детали устройства Grab
  - Используемые библиотеки
  - Структура расширений
  - Поддержка python 3
- Работа с формами
  - Автоматическая обработка форм
  - Отправка формы
  - Отправка файлов
- Работа с DOM-деревом
  - Интерфейс к LXML библиотеке
  - DOM-дерево
  - XPATH-методы
  - CSS-методы
  - Обработка исключений
- Поиск в тексте документа
  - Поиск строк
  - Поиск регулярных выражений
- Другие расширения
  - PyQuery расширение
  - BeautifulSoup расширение
- Cетевые транспорты
  - Что такое транспорт
  - Транспорт pycurl
  - Транспорт urllib
  - Транспорт selenium
- Полезные утилиты
  - Пул заданий
  - Блокировка файла
  - Логирование Grab-активности в файл
  - Фильтрация строк в файле
  - Обработка HTML
  - Работа с LXML-элементами
  - Работа с регулярными выражениями
  - Работа с текстом
  - Работа с http-заголовками

## Документация Grab:Spider

Асинхронный модуль для разработки сложных парсеров.

- Что такое Spider
- Способы создания заданий
  - initial_urls
  - task_generator
  - add_task
  - yield
  - Резюме
- Задания
  - Конструктор Task объекта
  - Task-объект как хранилище данных
  - Клонирование Task-объекта
- Очередь заданий
  - Приоритеты заданий
  - Бэкенды хранилищ
  - Генератор заданий
- Обработка ошибок
  - Правила обработки запросов
  - Сетевые ошибки
  - Повторно выполнение заданий
  - Статистика ошибок
- Система кэширования сетевых запросов
  - Бэкенды системы кэширования
  - Использование кэша
  - Сжатие кэшируемых данных

## API

Вся нижеследующая информация сгенерирована из комментариев в исходном коде. Поэтому она на английском языке. Документы из раздела API полезны тем, что они показывают описания всех аргументов каждого метода и класса библиотеки Grab.

Базовый интерфейс:

- grab.base: API базового класса
- grab.error: классы исключений
- grab.response: класс ответа сервера

Утилиты:

- grab.upload

## Всякая фигня

- Index
- Module Index
- Search Page

### Navigation

- index
- modules |
- next |
- Grab 0.6.30 documentation »