Веб-сканирование, также называемое веб-пауком или сканированием экрана, разработчики программного обеспечения определить его как «написание программного обеспечения для итерации на наборе веб-страниц с целью извлечения контента» — это отличный инструмент для извлечения данных из Интернета по разным причинам.
Использование веб-сканер, вы можете сканировать и извлекать данные из набора статей, извлекать данные из большого сообщения в блоге или извлекать количественные данные из Amazon для мониторинга цен и машинного обучения, преодолевать невозможность получать контент с сайтов, не имеющих официального API, или просто создавать собственный прототип для следующего лучшего Интернета.
В этом уроке мы научим вас основам использования Crawlbase и Scrapy для сканирования и скрапинга веб-страниц. В качестве примера мы будем использовать страницы результатов поиска Amazon для извлечения URL-адресов и названий продуктов ASIN. Когда этот урок будет завершен, вы, как мы надеемся, получите полностью функциональный веб-скрейпер, который проходит через ряд страниц на Amazon, извлекает данные с каждой страницы и выводит их на экран.
Пример парсера можно легко расширить и использовать в качестве надежного слоя для ваших личных проектов по сканированию и извлечению данных из Интернета.
Цели блога:
- Получите знания о фреймворке Scrapy, его возможностях, архитектуре и работе.
- Научитесь создавать свои собственные Амазонский скребок в Python Scrapy с использованием Crawlbase.
- Изучите основы извлечения страниц продуктов Amazon со страниц результатов поиска Amazon.
Предпосылки
Для успешного завершения этого урока вам понадобится Crawlbase API бесплатный токен для анонимного сканирования веб-страниц и Python 3, установленный на локальном компьютере, для разработки.
Шаг 1 — Создание базового скрапера Amazon
Scrapy — это библиотека Python для скрапинга; она включает в себя большинство распространенных инструментов, которые помогут нам при скрапинге. Она ускоряет процесс скрапинга и поддерживается сообществом с открытым исходным кодом, которое любит скрапинг и краулинг в Интернете.
Crawlbase имеет библиотеку Python для скрапинга; в сочетании со Scrapy мы гарантируем, что наш сканер будет работать анонимно в больших масштабах, не блокируясь сайтами. Crawlbase API — это мощный тонкий слой, который действует поверх любого сайта как тонкое промежуточное программное обеспечение.
Crawlbase & Scrapy имеет пакеты Python на PyPI (известные как pip). PyPI, менеджер пакетов Python, поддерживается сообществом Python как репозиторий различных библиотек, необходимых разработчикам.
Установите Crawlbase и Scrapy с помощью следующих команд:
1 | pip установить crawlbase |
1 | pip установить Scrapy |
Создайте новую папку для скрапера:
1 | mkdir амазон-скребок |
Перейдите в каталог скрейпера, который вы создали выше:
1 | cd amazon-scraper |
Создайте файл Python для вашего скрапера. Весь код этого руководства будет помещен в этот файл. Мы используем команду Touch в консоли для этого руководства, вы можете использовать любой другой редактор, который вам больше нравится.
1 | коснитесь myspider.py |
Давайте создадим нашего первого простого паука-скрапбукера. AmazonSpider который наследуется от scrapy.Spider. Согласно документации Scrapy, подклассы имеют 2 обязательных атрибута. name это имя нашего паука и список URL-адресов start_urls, мы будем использовать один URL для этого примера. Мы также импортируем Crawlbase API. Он позволяет нам создавать URL-адреса, которые будут проходить через Crawlbase API вместо оригинальных сайтов. Это позволяет избежать блокировок и страниц капчи.
Вставьте следующий код в myspider.py
1 | Импортировать ломка |
Запустите скрапер, который пока не извлекает данные, но вы должны указать на него Crawlbase Конечная точка API и получение Crawled 200 от Скрэпи.
1 | скрапи ранспайдер myspider.py |
Результат должен быть примерно таким: обратите внимание, что запрос на страницу результатов Amazon Crawlbase передано с кодом ответа 200.
1 | 2018-07-09 02:05:23 [scrapy.utils.log] ИНФОРМАЦИЯ: Scrapy 1.5.0 запущен (бот: scrapybot) |
Поскольку мы еще не написали парсер, код просто загрузил start_urls что является всего лишь одним URL-адресом для результатов поиска Amazon Crawlbase API и вернул результат парсеру по умолчанию, который по умолчанию ничего не делает. Теперь пришло время сделать следующий шаг и написать наш простой парсер для извлечения нужных нам данных.
Шаг 2. Извлечение URL-адресов и заголовков Amazon ASIN
Давайте улучшим myspider класс с простым парсером, который извлекает URL-адреса и заголовки всех продуктов ASIN на странице результатов поиска. Для этого нам нужно знать, какие селекторы css нам нужно использовать, чтобы указать Scrapy извлечь данные из этих тегов. На момент написания этого руководства URL-адреса ASIN находятся в .a-link-normal CSS-селектор
Расширение нашего класса паука с помощью простого парсера даст нам следующий код:
1 | Импортировать ломка |
Повторный запуск Scrapy должен вывести нам несколько хороших URL-адресов страниц ASIN и их заголовков. 😄
1 | ... |
Архитектура Python Scrapy Web Scraper Framework
Веб-скрейпер Scrapy — это надежный и открытый фреймворк для веб-сканирования, тщательно созданный на языке Python.
Веб-скрейперы и разработчики любят Scrapy. Он помогает им извлекать и очищать данные с веб-сайтов с непревзойденной эффективностью.
Когда проект запущен, в игру вступают несколько файлов, взаимодействующих с основными компонентами Scrapy. Наблюдение за фреймворком Scrapy показывает, что его ядром является движок. Движок управляет четырьмя ключевыми частями:
- Spiders
- Трубопроводы товаров
- Загрузчик
- Планировщик
Давайте разделим их работу на простые этапы:
- На начальном этапе веб-скрейпинга Scrapy коммуникация осуществляется через пауков. Эти пауки действуют как классы, которые определяют различные методы скрапинга. Пользователи вызывают эти методы. Они позволяют веб-скрейпингу Scrapy отправлять запросы движку. Запросы включают URL-адреса для скрапинга и желаемую информацию для извлечения. Движок Scrapy имеет решающее значение. Он контролирует поток данных и запускает ключевые события при скрапинге. Он выступает в качестве менеджера всей операции.
- После получения запроса движком он направляется в Планировщик, который управляет порядком выполнения задач. Если указано несколько URL, Планировщик ставит их в очередь на обработку.
- Движок также получает запросы от Планировщика, который заранее подготовил задачи. Затем эти запросы отправляются в модуль Загрузчика. Задача Загрузчика — извлечь HTML-код указанной веб-страницы и преобразовать его в объект Response.
- После этого Spider получает объект Response. Он использует его для запуска определенных методов скрапинга, определенных в классе Spider. После этого обработанные данные перемещаются в модуль ItemPipeline. Там они проходят множество этапов преобразования. Эти этапы могут включать очистку, проверку данных или вставку в базу данных.
Подводя итог, можно сказать, что фреймворк Scrapy состоит из ключевых частей. Он включает Spiders, которые определяют методы парсинга. Он также имеет Scrapy Engine, который управляет потоком данных. Есть Scheduler, который управляет порядком задач. И Downloader, который извлекает содержимое веб-страницы. Наконец, есть ItemPipeline, который применяет шаги к извлеченным данным. Каждый компонент играет важную роль в обеспечении эффективного и организованного процесса парсинга веб-данных Scrapy.
Почему Scrapy должен стать вашим первым выбором?
Когда вам нужно сканировать веб-страницу, Scrapy web scraper становится непревзойденным выбором по нескольким убедительным причинам. Давайте обсудим возможности Scrapy и поймем, почему он должен стать вашим инструментом для веб-скрейпинга.
Гибкость
Scrapy Web Scraper отличается своей врожденной универсальностью и гибкостью. Фреймворк изящно преодолевает препятствия веб-страниц. Он также решает сложности извлечения данных. Он выступает в качестве надежного компаньона для тех, кто ест и дышит веб-скрапингом, делая этот процесс доступным и эффективным.
Простое сканирование веб-страниц
Фреймворк Scrapy отличается своей способностью сканировать веб-страницу с предельной точностью. Scrapy обеспечивает простой способ сканирования веб-страницы. Он позволяет разработчикам сосредоточиться на извлечении, а не на сложных технологиях.
Независимо от того, прочесываете ли вы сложную структуру веб-сайта или извлекаете данные, Scrapy обеспечивает плавный опыт. Он упрощает сложную задачу перемещения по веб-страницам, что делает его идеальным компаньоном как для новичков, так и для опытных разработчиков.
Упрощение Python
В сообществе языков программирования Python известен своей простотой и читабельностью. Scrapy, будучи фреймворком на основе Python, наследует эти качества. Это делает его отличным выбором для тех, кто начинает веб-скрапинг. Код Python в Scrapy знаком. Это упрощает его изучение и улучшает среду для создания логики скрапинга.
Scrapy предоставляет такие удивительные функции, которые упрощают способ сканирования веб-страницы. От инициирования запросов до анализа и хранения данных, Scrapy оптимизирует каждый шаг с изяществом. Он предоставляет полную структуру. Он предназначен для создания масштабируемых и эффективных пауков. Пауки настраиваются для различных проектов по скрапингу.
Анонимность с поддержкой Scrapy Proxy
Сохранение анонимности при веб-скрапинге имеет решающее значение, и Scrapy в этом плане преуспевает. Благодаря встроенной поддержке прокси-сервера Scrapy гарантирует, что ваш сканер останется инкогнито. Эта функция бесценна при работе с IP-банами или CAPTCHA, предоставляя надежное решение для преодоления потенциальных препятствий в процессе скрапинга. Эта поддержка прокси-сервера Scrapy добавляет дополнительный уровень устойчивости к вашему процессу скрапинга.
Мощные возможности веб-скрапинга
Scrapy web scraper является синонимом мощных возможностей веб-скрейпинга. Он оптимизирует весь процесс, от отправки запросов до анализа и хранения данных. Его эффективность и надежность делают его незаменимым. Он извлекает данные из различных веб-сайтов и работает хорошо. Неважно, являетесь ли вы начинающим разработчиком или у вас есть 10-летний опыт работы в этой области, Scrapy proxy предоставляет вам инструменты, необходимые для навигации по огромному объему веб-данных с большой легкостью. Его архитектура основана на компонентах. Он поощряет настройку, позволяя разработчикам создавать рабочие процессы скрапинга для удовлетворения требований проекта.
Испытайте новый уровень скрапинга с Crawlbase
В этом уроке мы изучили основы веб-сканирования и скрапинга. Мы использовали Crawlbase API со Scrapy, чтобы скрыть наш скрапер от сайтов, которые могут блокировать наши запросы. Мы также узнали основы того, как извлекать страницы продуктов Amazon из страниц результатов поиска Amazon. Вы можете изменить пример на любой сайт, который вам нужен, и начать анонимно сканировать тысячи страниц с помощью Scrapy & Crawlbase.
Мы надеемся, что вам понравился этот урок, и надеемся увидеть вас в ближайшее время. Crawlbase. Счастливый Crawling и Соскребание!











