Учебник по Scrapy: как сделать веб-сканер с помощью Scrapy?



В этой статье Scrapy Tutorial вы научитесь создавать веб-сканер с различными методами извлечения данных и способами хранения данных в базе данных.

Веб-скрапинг - это эффективный способ сбора данных с веб-страниц, он стал эффективным инструментом в . С различными библиотеки подарок для парсинга веб-страниц, например , работа специалиста по данным становится оптимальной. Scrapy - это мощный веб-фреймворк, используемый для извлечения, обработки и хранения данных. В этом руководстве по scrapy мы узнаем, как создать веб-сканер. В этом блоге обсуждаются следующие темы:

Что такое Scrapy?

Scrapy - это бесплатный фреймворк для веб-сканирования с открытым исходным кодом, написанный на python. Первоначально он был разработан для выполнения , но также может использоваться для извлечения данных с помощью API. Он поддерживается Scrapinghub ltd.





Scrapy - это полный пакет, когда дело доходит до загрузки веб-страниц, обработки и хранения данных на .

Это похоже на электростанцию, когда дело доходит до парсинга веб-сайтов с помощью нескольких способов очистки веб-сайта. Scrapy с легкостью справляется с более крупными задачами, очищая несколько страниц или группу URL-адресов менее чем за минуту. Он использует твистер, который работает асинхронно для достижения параллелизма.



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

scrapy архитектура учебник scrapy edureka

Что такое веб-сканер?

Веб-сканер - это программа, которая автоматически ищет документы в Интернете. В первую очередь они запрограммированы на повторяющиеся действия для автоматического просмотра.

Как это устроено?



Веб-сканер очень похож на библиотекаря. Он ищет информацию в Интернете, классифицирует информацию, а затем индексирует и каталогизирует информацию для просканированной информации, которая будет извлечена и сохранена соответствующим образом.

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

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

  • Порталы сравнения цен ищут информацию о конкретных продуктах, чтобы сравнить цены на разных платформах с помощью веб-сканера.

  • Веб-сканер играет очень важную роль в области интеллектуального анализа данных для поиска информации.

  • Инструменты анализа данных используют веб-сканеры для расчета данных по просмотрам страниц, а также по входящим и исходящим ссылкам.

  • Сканеры также служат информационным узлам для сбора данных, например новостным порталам.

Как установить Scrapy?

Чтобы установить scrapy в вашу систему, рекомендуется установить его на выделенный файл virtualenv. Установка работает так же, как и любой другой пакет в Python, если вы используете Conda environment, используйте следующую команду для установки scrapy:

установка conda -c conda-forge scrapy

вы также можете использовать среду pip для установки scrapy,

pip install scrapy

В зависимости от вашей операционной системы может быть несколько зависимостей компиляции. Scrapy написан на чистом питоне и может зависеть от нескольких пакетов Python, например:

  • lxml - это эффективный парсер XML и HTML.

  • parcel - Библиотека извлечения HTML / XML, написанная поверх lxml

  • W3lib - это многоцелевой помощник для работы с URL-адресами и кодировками веб-страниц.

  • twisted - асинхронная сетевая структура

    Python, что такое __init__
  • криптография - помогает в решении различных задач безопасности на сетевом уровне.

Запуск вашего первого проекта Scrapy

Чтобы запустить свой первый проект scrapy, перейдите в каталог или место, где вы хотите сохранить файлы, и выполните следующую команду

scrapy startproject имя проекта

После выполнения этой команды вы получите следующие каталоги, созданные в этом месте.

  • название проекта/

    как проводить тестирование базы данных
    • scrapy.cfg: развертывает файл конфигурации

  • название проекта/

    • __init__.py: модуль Python проекта

    • items.py: файл определения элементов проекта

    • middlewares.py: файл промежуточного программного обеспечения проекта

    • pipelines.py: файл конвейеров проекта

    • settings.py: файл настроек проекта

  • пауки /

    • __init__.py: каталог, в который позже вы поместите своих пауков

Создание вашего первого паука

Пауки - это классы, которые мы определяем и которые scrapy использует для сбора информации из Интернета. Вы должны создать подкласс scrapy.Spider и определить начальные запросы, которые нужно сделать.

Вы пишете код своего паука в отдельном файле Python и сохраняете его в каталоге projectname / spiders в вашем проекте.

quotes_spider.py

импортировать класс Scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] для URL в URL: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% страница с открытым (имя файла, 'wb') как f: f.write (response.body) self.log ('сохраненный файл% s'% filename)

Как видите, мы определили различные функции в наших пауках,

  • имя: идентифицирует паука, он должен быть уникальным на протяжении всего проекта.

  • start_requests (): должен возвращать итерацию запросов, с которыми паук начнет сканировать.

  • parse (): это метод, который будет вызываться для обработки ответа, загружаемого с каждым запросом.

Извлечение данных

До сих пор паук не извлекал никаких данных, он просто сохранял весь HTML-файл. Паук scrapy обычно генерирует множество словарей, содержащих данные, извлеченные со страницы. Мы используем ключевое слово yield в python в обратном вызове для извлечения данных.

импортировать scrapy класс QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): для цитаты в response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

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

Хранение данных

Самый простой способ сохранить извлеченные данные - использовать экспорт каналов. Для сохранения данных используйте следующую команду.

цитаты сканирования scrapy -o quotes.json

Эта команда сгенерирует файл quotes.json, содержащий все очищенные элементы, сериализованные в JSON .

Это подводит нас к концу этой статьи, где мы узнали, как создать веб-сканер, использующий scrapy в Python, для очистки веб-сайта и извлечения данных в файл JSON. Я надеюсь, что вы понимаете все, о чем вам рассказали в этом руководстве.

Если вы нашли эту статью «Учебник по Scrapy» релевантной, ознакомьтесь с надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.

Мы здесь, чтобы помочь вам на каждом этапе вашего пути и предложить учебную программу, предназначенную для студентов и профессионалов, которые хотят учиться. . Курс разработан, чтобы дать вам фору в программировании на Python и обучить вас как основным, так и продвинутым концепциям Python, а также различным любить

Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Руководства по Scrapy», и наша команда будет рада ответить.