[Packt] Learning Scrapy + Scrapy Documentation Release 1.1.0
Скрытое содержимое.
Кратко о книге
Эта книга посвящена долгожданной Scrapy 1.0, которая позволяет вам извлекать полезные данные практически из любого виртуального источника, прилагая совсем небольшие усилия. Она начинается с объяснения основ фреймворка Scrapy, после чего следует подробное описание того, как извлекать данные из любого источника, чистить их и форматировать их согласно вашему требованию с использованием Python и сторонних API. Далее вы познакомитесь с процессом сохранения собранной информации в базе данных, а также с поисковыми системами и выполнением анализа этих данных в режиме реального времени с помощью Spark Streaming. К концу этой книги вы с легкостью в совершенстве освоите искусство сбора данных.
Прочитав книгу, Вы сможете:
· понимать структуру HTML-страниц и писать XPath для извлечения нужных вам данных;
· писать пауков Scrapy и выполнять краулинг;
· работать с данными в любой системе баз данных, поисковой системе или аналитической системе;
· сконфигурировать вашего паука для загрузки файлов, изображений и использовать прокси-серверов;
· создавать эффективные конвейеры, которые передают данные в нужном вам формате;
· использовать асинхронный API на базе фреймворка Twisted для одновременной обработки сотен элементов;
· сделать вашего паука сверхбыстрым, узнав, как настроить производительность Scrapy;
· выполнять масштабный распределенный краулинг с помощью scrapyd и scrapinghub.
Об авторе
За плечами Димитриоса Кузиса-Лукаса - пятнадцатилетний опыт работы в качестве высококлассного разработчика программного обеспечения. Кроме того, он использует свои приобретенные знания и опыт, чтобы научить широкую аудиторию писать качественное программное обеспечение, а также.
Он является специалистом в нескольких дисциплинах, в том числе математике, физике и микроэлектронике. Глубокое понимание этих предметов позволило ему выйти за рамки "прагматических решений". Он знает, что настоящие решения должны быть точными, как законы физики, надежными, как ECC-память, и универсальными, как математика.
В настоящий момент Димитриос занимается разработкой распределенных отказоустойчивых систем с низким временем отклика, используя новейшие технологии дата-центров. Он не привязан к какому-то конкретному языку, но отдает небольшое предпочтение Python, C ++ и Java. Твердо верит в открытое программное и аппаратное обеспечение и надеется, что его вклад принесет пользу определенным кругам специалистов, а также всему человечеству.
Подробное содержание
Скрытое содержимое.
Скрытое содержимое.
Подробное содержание
Скрытое содержимое.
- Автор: Dimitrios Kouzis-Loukas
- Переводчик: AllAboutGraph
- Оригинальное название: Learning Scrapy
- Объем: 415 страниц
Скрытое содержимое.
Кратко о книге
Эта книга посвящена долгожданной Scrapy 1.0, которая позволяет вам извлекать полезные данные практически из любого виртуального источника, прилагая совсем небольшие усилия. Она начинается с объяснения основ фреймворка Scrapy, после чего следует подробное описание того, как извлекать данные из любого источника, чистить их и форматировать их согласно вашему требованию с использованием Python и сторонних API. Далее вы познакомитесь с процессом сохранения собранной информации в базе данных, а также с поисковыми системами и выполнением анализа этих данных в режиме реального времени с помощью Spark Streaming. К концу этой книги вы с легкостью в совершенстве освоите искусство сбора данных.
Прочитав книгу, Вы сможете:
· понимать структуру HTML-страниц и писать XPath для извлечения нужных вам данных;
· писать пауков Scrapy и выполнять краулинг;
· работать с данными в любой системе баз данных, поисковой системе или аналитической системе;
· сконфигурировать вашего паука для загрузки файлов, изображений и использовать прокси-серверов;
· создавать эффективные конвейеры, которые передают данные в нужном вам формате;
· использовать асинхронный API на базе фреймворка Twisted для одновременной обработки сотен элементов;
· сделать вашего паука сверхбыстрым, узнав, как настроить производительность Scrapy;
· выполнять масштабный распределенный краулинг с помощью scrapyd и scrapinghub.
Об авторе
За плечами Димитриоса Кузиса-Лукаса - пятнадцатилетний опыт работы в качестве высококлассного разработчика программного обеспечения. Кроме того, он использует свои приобретенные знания и опыт, чтобы научить широкую аудиторию писать качественное программное обеспечение, а также.
Он является специалистом в нескольких дисциплинах, в том числе математике, физике и микроэлектронике. Глубокое понимание этих предметов позволило ему выйти за рамки "прагматических решений". Он знает, что настоящие решения должны быть точными, как законы физики, надежными, как ECC-память, и универсальными, как математика.
В настоящий момент Димитриос занимается разработкой распределенных отказоустойчивых систем с низким временем отклика, используя новейшие технологии дата-центров. Он не привязан к какому-то конкретному языку, но отдает небольшое предпочтение Python, C ++ и Java. Твердо верит в открытое программное и аппаратное обеспечение и надеется, что его вклад принесет пользу определенным кругам специалистов, а также всему человечеству.
Подробное содержание
Скрытое содержимое.
Благодарности
Об авторе
О рецензенте
Файлы поддержки, электронные книги, дисконтные предложения и многое другое
Зачем нужна подписка?
Свободный доступ для владельцев аккаунтов Packt
Предисловие
О чем эта книга
Что необходимо для чтения этой книги
Для кого эта книга
Типографские соглашения
Обратная связь с читателями
Служба поддержки
Где скачать примеры программного кода
Опечатки
О пиратстве
Разбираемые вопросы
1. Введение в Scrapy
Привет, Scrapy
Еще несколько причин полюбить Scrapy
Об этой книге: задачи и применение
Важность автоматизированного скрапинга данных
Разработка надежных, качественных приложений и обеспечение реалистичного графика
Быстрая разработка минимально жизнеспособного продукта (minimum viable product)
Скрапинг дает Вам возможности, ведь Google не может самостоятельно заполнять формы
Обнаружение нужных данных и интеграция в экосистему
Будьте добропорядочным гражданином в мире, полном пауков
Что не может выполнить Scrapy
Выводы
2. Постигаем HTML и XPath
HTML, древовидная DOM-структура и XPath
URL-адрес
HTML документ
Древовидная структура
То, что вы видите на экране
Выбор HTML-элементов с помощью XPath
Полезные выражения XPath
Используем Chrome для получения выражений XPath
Примеры общих задач
Предвидим изменение HTML-страниц
Выводы
3. Основы краулинга
Установка Scrapy
MacOS
Windows
Linux
Ubuntu или Debian Linux
Red Hat или CentOS Linux
Из последнего источника
Обновление Scrapy
Vagrant: официальный способ запускать примеры
UR2IM - фундаментальный процесс скрапинга
URL-адрес
Запрос и ответ
Элементы
Проект Scrapy
Определение элементов
Написание поисковых роботов
Заполнение элементов
Сохранение в файлы
Очистка - загрузчики и служебные поля
Создание контрактов
Извлечение большего количества URL-адресов
Двунаправленный краулинг с помощью паука
Двунаправленный краулинг с помощью CrawlSpider
Выводы
4. От Scrapy к мобильному приложению
Выбор платформ разработки мобильных приложений
Создание базы данных и коллекции
Заполнение базы данных с помощью Scrapy
Создание мобильного приложения
Создание службы доступа к базе данных
Настройка пользовательского интерфейса
Маппинг (сопоставление) данных пользовательскому интерфейсу
Маппинг (сопоставление) полей баз данных элементам управления пользовательского интерфейса
Тестирование, обеспечение совместного доступа и экспорт мобильного приложения
Выводы
5. Советы по написанию быстрых пауков
Паук, который заходит в систему
Паук, который использует API-интерфейсы JSON и AJAX-страницы
Работа с аргументами в ответах
30-кратное ускорение работы паука
Паук, который сканирует файл Excel
Выводы
6. Скрапинг на базе платформы Scrapinghub
Регистрация, вход в систему и запуск проекта
Развертывание наших пауков и планирование запусков
Доступ к нашим элементам
Планирование повторяющихся обходов
Выводы
7. Настройка и управление
Использование параметров Scrapy
Основные настройки
Анализ
Логирование
Stats
Telnet
Пример 1 - использование Telnet
Вопросы производительности
Ранняя остановка краулеров
HTTP-кэширование и работа в оффлайне
Пример 2 - работа с кэшированными данными в оффлайне
Способы краулинга
Фиды
Скачивание медиаконтента
Другие виды медиаконтента
Пример 3 - сканивание изображений
Amazon Web Services
Использование прокси-серверов и краулеров
Пример 4 - использование прокси-серверов и умного прокси-сервера Crawlera
Дополнительные настройки
Настройки проекта
Расширение настроек Scrapy
Точная настройка скачивания
Настройки Autothrottle extension (автоматического замедления скорости скачивания)
Настройки Memory usage extension (использования памяти)
Логирование и отладка
Выводы
8. Программирование Scrapy
Scrapy – это Twisted-приложение
Объекты Deferred и цепочки Deferred
Понимание принципов работы Twisted и nonblocking I/O
Обзор архитектуры Scrapy
Пример 1 - очень простой конвейер (pipeline)
Сигналы
Пример 2 - расширение, которое измеряет пропускную способность и задержки
За пределами связующего программного обеспечения
Выводы
9. Советы по работе с конвейерами
Использование REST API
Использование treq
Конвейер, который отправляет данные на сервер Elasticsearch
Конвейр, который выполняет геокодирование с помощью API Google Geocoding
Включение геоиндексирования для Elasticsearch
Работа с базами данных с помощью стандартных клиентов Python
Конвейер, который записывает данные в MySQL
Работа со службами с помощью клиентов Twisted
Конвейер, который читает/записывает данные в Redis
Работа с ресурсоемким функционалом
Конвейер, который выполняет ресурсоемкие или блокирующие операции
Конвейер, который использует бинарники или скрипты
Выводы
10. Основы производительности Scrapy
Движок Scrapy - интуитивный подход
Системы каскадных очередей
Определение узких мест
Модель производительности Scrapy
Получение статистических измерений производительности и утилизации компонентов с помощью telnet
Наша система критериев оценки
Стандартная модель производительности
Решение проблем, связанных с производительностью
Кейс № 1 - загруженный CPU
Кейс № 2 - блокирующий код
Кейс № 3 - "мусор" в ходе скачивания
Кейс № 4 - переполнение вследствие значительного количества запросов или больших запросов
Кейс № 5 - переполнение из-за ограниченного/чрезмерного параллелизма элементов
Кейс № 6 - загрузчику нечего делать
Схема устранения неполадок
Выводы
11. Распределенный краулинг с помощью Scrapyd и аналитика в режиме реального времени
Как название влияет на цену?
Scrapyd
Обзор нашей распределенной системы
Модифицируем нашего паука и промежуточное программное обеспечение
Краулинг с использованием индексации на основе шардинга
Пакетный краулинг URL-адресов
Получение начальных URL-адресов из настроек
Развертывание Вашего проекта на scrapyd-серверах
Создаем собственную команду мониторинга
Вычисление сдвига с помощью Apache Spark Streaming
Запуск распределенного краулинга
Производительность системы
Ключевые моменты
Выводы
A. Установка дополнительного программного обеспечения и устранение проблем
Установка необходимых компонентов
Система
Об установке в двух словах
Установка в Linux
Установка в ОС Windows или Mac
Установите Vagrant
Как получить доступ к терминалу
Установка VirtualBox и Git
Убедитесь в том, что VirtualBox поддерживает 64-битные изображения
Включите SSH-клиент для Windows
Скачайте код этой книги и настройте систему
Часто задаваемые вопросы по настройке системы
Что я могу скачать и сколько времени это займет?
Что делать, если Vagrant зависает?
Как быстро закрыть /возобновить работу VM?
Как полностью восстановить виртуальную машину?
Как изменить размер виртуальной машины?
Как разрешить проблемы с портами?
В Linux используем Docker
В Windows или Mac используем VM
Как заставить его работать из-под корпоративного прокси-сервера?
Как подключиться к Docker Provider VM?
Сколько ресурсов процессора/памяти использует каждый сервер?
Как посмотреть размеры образов контейнеров Docker?
Как я могу восстановить систему, если Vagrant не отвечает?
Есть проблема, которую я не могу решить, что мне делать?
- Автор:
- Переводчик: AllAboutGraph
- Оригинальное название: Scrapy Documentation Release 1.1.0
- Объем: 246 страниц
Скрытое содержимое.
https://yadi.sk/i/OfIjuYJRs6cxX
Подробное содержание
Скрытое содержимое.
1. Помощь
2. Первые шаги
2.1 Кратко о Scrapy
2.2 Руководство по установке
2.3 Учебник Scrapy
2.4 Примеры
3. Базовые понятия
3.1 Инструмент командной строки (Command line tool)
3.2 Пауки
3.3 Селекторы
3.4 Элементы (Items)
3.5 Загрузчики элементов (Item Loaders)
3.6 Оболочка Scrapy (Scrapy shell)
3.7 Конвейер элементов (Item Pipeline)
3.8 Настройки экспорта собранных данных (Feed exports)
3.9 Запросы и ответы
3.10 Извлекатели ссылок (Link Extractors)
3.11 Параметры
3.12 Исключения
4. Встроенные сервисы
4.1 Логирование
4.2 Сбор статистики (Stats Collection)
4.3 Отправка e-mail
4.4 Консоль Telnet
4.5 Веб-сервис
5. Решение конкретных проблем
5.1 Часто задаваемые вопросы
5.2 Отладка пауков
5.3 Контракторы пауков (Spiders Conracts)
5.4 Распространенные практики
5.5 Масштабный краулинг
5.6 Использование Firefox для скрапинга
5.7 Использование Furebug для скрапинга
5.8 Устранение утечек памяти
5.9 Скачивание и обработка файлов и изображений
5.10 Пакеты для Ubuntu
5.11 Развертывание пауков
5.12 Расширение AutoThrottle (Автоматическое замедление скорости скачивания)
5.13 Бенчмаркинг
5.14 Задания: паузы и возобновление работы краулеров
6. Подробнее о Scrapy
6.1. Общий обзор архитектуры
6.2 Downloader Middleware
6.3 Spider Middleware
6.4 Расширения (Extensions)
6.5 Ядро API-интерфейса
6.6 Сигналы
6.7 Экспортеры элементов
7. Все остальное
7.1 Изменения в новой версии
7.2 Помощь в разработке Scrapy
7.3 Информация о версии и стабильность API-интерфейса