Описание тега scrapy-spider
Scrapy - это прикладная платформа для сканирования веб-сайтов и извлечения структурированных данных, которые могут использоваться для широкого спектра полезных приложений, таких как интеллектуальный анализ данных, обработка информации или архивирование исторических данных.
Несмотря на то, что Scrapy изначально был разработан для парсинга веб-страниц, его также можно использовать для извлечения данных с помощью API-интерфейсов (таких как Amazon Associates Web Services) или в качестве веб-сканера общего назначения.
Пауки - это классы, которые определяют, как будет очищаться определенный сайт (или группа сайтов), в том числе как выполнять сканирование (т. Е. Переходить по ссылкам) и как извлекать структурированные данные с их страниц (т. Е. Извлекать элементы). Другими словами, пауки - это место, где вы определяете настраиваемое поведение для сканирования и анализа страниц для определенного сайта (или, в некоторых случаях, группы сайтов).
У пауков цикл очистки проходит примерно так:
Вы начинаете с генерации начальных запросов для сканирования первых URL-адресов и указываете функцию обратного вызова, которая будет вызываться с ответом, загруженным из этих запросов. Первые запросы для выполнения получаются путем вызова метода start_requests(), который (по умолчанию) генерирует запрос для URL-адресов, указанных в start_urls, и метода синтаксического анализа в качестве функции обратного вызова для запросов.
В функции обратного вызова вы анализируете ответ (веб-страницу) и возвращаете либо объекты Item, либо объекты запроса, либо итерацию обоих. Эти запросы также будут содержать обратный вызов (возможно, такой же), а затем будут загружены Scrapy, а затем их ответ будет обработан указанным обратным вызовом.
В функциях обратного вызова вы анализируете содержимое страницы, обычно используя селекторы (но вы также можете использовать BeautifulSoup, lxml или любой другой механизм, который вам нравится) и генерируете элементы с проанализированными данными.
Наконец, элементы, возвращаемые пауком, обычно сохраняются в базе данных (в некоторых конвейерах элементов) или записываются в файл с использованием экспорта каналов.
Несмотря на то, что этот цикл применяется (более или менее) к любому типу пауков, существуют разные типы пауков по умолчанию, объединенные в Scrapy для разных целей.