Scrapy в установке и прост в использовании

Установка модуля

Windows

Установка SCRAPY нужно устанавливать в зависимости от окружающей среды, скрученной, скрученными и нужно установить C ++ зависеть от окружения

Когда пункт установить Scrapy если скрученной ошибку

Витая в https://www.lfd.uci.edu/~gohlke/pythonlibs/ скачать соответствующую версию (версии cp36 имени python3.6 файл)

Затем введите CMD в директорию, где установить выполнение Twisted Twisted пип плюс имя файла

Последнее исполнение пункта установить Scrapy

 

 

Рекомендации по установке Ubuntu

Не следует использовать программный пакет питона-scrapyUbuntu при условии, что они, как правило, слишком стары и медленная скорость, не может догнать последнюю Scrapy

Для Ubuntu (или на основе Ubuntu) Scrapy, установленных в системе, вам необходимо установить эти зависимости

Sudo APT-получить установку питона-DEV питон-пип libxml2-DEV libxslt1-DEV zlib1g-DEV libffi-DEV libssl-DEV

Если вы хотите установить Scrapy на Python3, вы также должны заголовки развития Python3

Sudo APT-получить установку python3-DEV

В virtualenv, вы можете использовать пункт установить Scrapy: пип установить Scrapy

 

 

 

Простой в использовании

Новый проект

SCRAPY startproject project_name

 

 

Написать рептилии

Первый способ: создать единый файл

Создайте класс, который должен наследовать класс scrapy.Spider, необходимо определить три свойства

Имя: паук должен быть уникальным и

start_urls: первоначальный список URL

синтаксический анализ (сам, ответ) Метод: URL вызываются после каждого завершения первоначального

Синтаксический анализ функции для выполнения двух функций

1, разобрать ответ, и вернуть пакет на объект элемента объекта

2, необходимо извлечь новый URL-адрес загрузки, создайте новый запрос и возвращает его

Выполнение одного командного файла SCRAPY runspider demo.py

 

Второй подход: Создать команду

SCRAPY genspider рептилии доменное имя

 

 

Запуск рептилии

Список SCRAPY для просмотра файлов, которые могут быть запущены рептилии

SCRAPY имя ползать рептилии (значение имени атрибута)

 

 

Отслеживание ссылок

Создайте переменный класс PAGE_NUM ползет для хранения номера текущей страницы, информации, извлекаемая синтаксический анализ функции, а затем добавляет 1 к переменной page__num от объекта через гусеничный, следующую конфигурацию URL, а затем создает и возвращает объект scrapy.Request

Если ответ меньше, чем извлекать информацию, мы должны судить последнюю страницу, конец функции синтаксического анализа непосредственно вернуться

 

Defined трубопровод пункт

синтаксический анализ функции после разбора информации нам нужно, эта информация может быть упакована в словаре объект или объект scray.Item, а затем вернуться

Этот объект будет передан в трубопровод элемента, который выполняет несколько компонентов путем последовательной ее обработки. Каждый элемент воздуховод в сборе представляет собой простой способ для достижения класса Python

Они получают и принять меры по пункту, и определить, является ли элемент должен продолжать через трубопровод отбрасывается и не обрабатываются или

 

Типичное использование элемента трубы:

Очистка HTML данных  

Убедитесь в том, что данные были удалены (проверить, содержат ли элементы определенных полей)  

Проверьте наличие дубликатов (и удалять их)  

Товар был искателем сохранение данных

 

 

Написать Pipeline

# Выполнить Защиту open_ паук (самость, паук) в начале рептилий

# Reptile закрыт при выполнении Защиты close_ паука (я, паук)

# Из перевода элемента из процесса и возврат обработанного элемента четкости process_ элемента (сам, пункт, паук)

Для активации этого компонента трубопровода, необходимо добавить его в ITEM_PIPELINES настройки, заданные в файле настроек

В этом устройстве определяет порядок, в котором они работают целые значения присвоен класс: в порядке от нижнего значения к более высокому значению

 

 

Определенный элемент

Класс товара обеспечивает Scrapy

items.py редактировать файлы в директории проекта

Мы ввели класс Item определен в гусеничном, структура данных из экземпляра с помощью его

 

 

 

Запуск процесса

поток данных

 Во-первых, получить первоначальный запрос от рептилий

Модуль планирования в запрос, то запрос на следующем приобретение требует ползания

Планирования модуля запроса для возврата к двигателю требуется ползать

Двигатель посылает запрос на загрузку, на загрузку последовательности через все промежуточные

После того, как страница будет завершена, загрузка возвращает ответ, содержащий данные страницы, а затем последовательно через все загруженный промежуточный слой

Двигатель получает ответ от загрузчика, а затем отправлен в разборе рептилия, рептилия последовательно через все промежуточные

Рептилиям обрабатывать полученную ответ, а затем разбор элемент генерирует новый запрос отправляется в двигатель

Двигатель имеет хороший обработанный элемент компонент трубопровода, генерирует новый запрос в модуль планирования хорошего, и запрашивает следующий запрос

Повторы процесса до тех пор, пока есть не запрос на планировщик

 

 

пакет

Данные пауки Искатели обработки, необходимые для извлечения или другого ответа на запрос выборки

Поток данных между всеми компонентами двигателя двигатель двигателя отвечает за систему управления и запуска событий, когда происходят определенные действия

Планировщик планировщик получает запрос запроса очереди Епдиеего

загрузить двигатель отвечает за отправку запроса по запросу на скачивание

трубопроводы данных элемента труба, ответственная за паук возвращается для хранения

 

 

Промежуточное

Скачать Middleware

Загрузка промежуточный слой расположен между конкретным двигателем и крючками загрузчиком которого обработкой запроса передается от двигателя к загрузчику, а загрузка поступают в двигатель в ответ на

Используйте Downloader, чтобы сделать следующее промежуточное программное обеспечение

Перед отправкой запроса, чтобы загрузить программу для обработки запроса (т.е. перед SCRAPY посылает запрос на сайт)

Перед тем, как ответ посылают рептилий

Непосредственно послать новый запрос, вместо передачи принятого ответа на паук

Ответ не получить передается на веб-странице гусеничного

Спокойно отказаться от некоторых запросов

 

 

Рептилия Middleware

Промежуточный находятся в определенном гусеничном крючке между двигателем и гусеничным, и способны обрабатывать входящие запросов ответа и передают из пункта

Используйте следующие рептилии промежуточному

После обработки элемента или запроса обратного вызова рептилии

Обработка start_requests

Аномальные рептилии погрузо

errback, а не вызывать ответ на запрос обратного вызова на основе содержания

 

 

Событийный сеть

Витая SCRAPY написана, фреймворк Twisted Python является популярным событийным. Он использует неблокируемый (также называемый асинхронным) код параллелизм

 

 

 

рекомендация

отwww.cnblogs.com/jiyu-hlzy/p/11828192.html