Добавить Автора
Публичный аккаунт WeChat:PythonНаука о данных
Знаю почти:zhuanlan.zhihu.com/pypcfx
На пути рептилий узнайscrapy
является важным звеном. Может быть, есть много друзей, которые также контактируют и учатся в этот моментscrapy
, так хорошо, давайте учиться вместе. связатьсяscrapy
У друзей могут возникнуть сомнения, все-таки это фреймворк, и я не знаю, с чего начать. Из этой статьи блогеры откроютscrapy
Обучающая серия, рассказывающая о том, как быстро начать работу со scrapy и умело его использовать.
Как и первая статья, эта статья в основном знакомит и понимаетscrapy
, в конце порекомендую книгу об обученииscrapy
Книга и как ее получить.
Зачем использовать краулер-фреймворк?
Если у вас есть определенное представление об основах краулера, то пришло время узнать о структуре краулера.Так зачем использовать краулер-фреймворк?
-
Суть обучения в том, чтоизучить идею программирования, и не следует ограничиваться только тем, как он используется. От понимания до освоения фреймворка — это на самом деле процесс понимания идеи.
-
Фреймворк также приносит большое удобство в нашу разработку. Уже написано много правил и положений, и нам не нужно повторять колеса, нам нужно только настроить функции, которые мы хотим реализовать, под свои нужды, что значительно снижает нагрузку.
-
Обратитесь к превосходному коду фреймворка и изучите его, чтобы улучшить навыки программирования.
Блогер изучил фреймворк краулера на основе этих моментов в то время, но помните, что основная цель — освоить идею фреймворка и возможности фреймворка. Только освоив эту идею, вы сможете лучше ее использовать и даже расширить.
Введение в фреймворк scrapy
Наиболее популярными фреймворками для поисковых роботов являютсяscrapy
иpyspider
, но тот, кого все любят я думаю нетscrapy
Никто.scrapy
Это продвинутый краулер-фреймворк с открытым исходным кодом, мы можем назвать его **"scrapy language"**. оно используетpython
Он используется для обхода веб-страниц, извлечения структурных данных и может лучше применять полученные структурные данные для анализа данных и интеллектуального анализа данных.scrapy
Имеет следующие особенности:
-
scrapy
основанный на событиях механизм, который используетtwisted
дизайн реализованнеблокирующийасинхронная работа. По сравнению с традиционными блокирующими запросами это значительно улучшает использование ЦП и эффективность сканирования. - Конфигурация проста, а сложные функции можно реализовать, просто установив одну строку кода.
- Масштабируемый и богатый плагинами, такими как распределенные
scrapy + redis
, визуализация сканера и другие плагины. - Анализ прост в использовании,
scrapy
в упаковкеxpath
и другие парсеры, обеспечивающие более удобный и продвинутыйselector
Конструктор, который эффективно обрабатывает сломанныеHTML
код и кодирование.
Какой из них лучше использовать скрайп и запросы + бс?
Некоторые друзья спрашивали, зачем использовать скрап, разве ты не можешь его не использовать? использоватьresquests + beautifulsoup
Комбинацию сделать нельзя?
Не волнуйтесь, просто делайте это так, как вам удобно.resquests + beautifulsoup
Конечно, запросы + любой парсер подойдет, это очень хорошая комбинация. Преимущество этого в том, что мы можем гибко писать собственный код, не привязываясь к фиксированному шаблону. Не всегда удобно использовать фиксированный фреймворк, например, обработка анти-антилазания в scrapy не очень полная, и часто ее приходится решать самой.
Но для некоторых малых и средних задач сканераscrapy
Это действительно очень хороший выбор, он позволяет нам не писать повторяющийся код и обладает отличной производительностью. Когда мы пишем собственный код, например, для повышения эффективности сканирования, мы каждый раз пишем многопоточный или асинхронный код, что сильно тратит время на разработку. На данный момент лучше использовать уже написанный фреймворк, нужно только написать правила парсинга иpipeline
Достаточно. Итак, что именно нам нужно сделать? Взгляните на картинку ниже, чтобы понять.
Итак, какой из них использовать, зависит от личных потребностей и предпочтений. А вот что касается порядка обучения, то блогеры предлагают сначала изучитьresquests + beautifulsoup
, затем коснитесьScrapy
Эффект может быть лучше, только для справки.
Архитектура Скрэпи
изучениеScrapy
Прежде чем нам нужно знатьScrapy
Архитектура, понимание этой архитектуры имеет решающее значение для изучения scrapy.
Следующее описание взято из официального документа (цитируется здесь), который очень ясен и его можно понять, взглянув на это изображение.
компоненты
Scrapy EngineМеханизм отвечает за управление потоком данных через все компоненты системы и инициирование событий при выполнении соответствующих действий. Подробнее см. в потоке данных ниже.(Data Flow)
часть.
ПланировщикПланировщик принимает от движкаrequest
и поставьте их в очередь, чтобы они были доступны для механизма позже, когда механизм запросит их.
ЗагрузчикЗагрузчик отвечает за выборку данных страницы и предоставление их движку, а затемspider
.
Spiders
Spider
даScrapy
Написано пользователем для анализаresponse
и извлечьitem
(то есть выбранный элемент) или класс дополнительного последующего URL. каждыйspider
Отвечает за работу с конкретным (или некоторыми) веб-сайтом.
Item Pipeline
Item Pipeline
ответственный за обработкуspider
извлеченitem
. Типичными процессами являются очистка, проверка и сохранение (например, доступ к базе данных).
Промежуточное программное обеспечение загрузчикаПромежуточное ПО загрузчика — это особый хук между движком и загрузчиком.(specific hook)
,иметь дело сDownloader
перешел к двигателюresponse
. Он обеспечивает простой механизм расширения путем вставки пользовательского кода.Scrapy
Функции.
ПО промежуточного слоя Spider
Spider中间件
это специфический крючок между двигателем и крестовиной(specific hook)
,иметь дело сspider
Вход (ответ) и выход (элементы и запросы). Он предоставляет простой механизм расширения функциональности Scrapy путем вставки пользовательского кода.
процесс потока данных
- Движок открывает сайт
(open a domain)
, НайдиSpider
и кspider
Запросите первые URL-адреса для сканирования. - двигатель от
Spider
Получить первый URL для сканирования в планировщике(Scheduler)
отRequest
расписание. - Движок запрашивает у планировщика следующий URL для обхода.
- Планировщик возвращает следующий URL-адрес, который должен быть просканирован, механизму, и механизм передает URL-адрес через промежуточное программное обеспечение загрузки (запрос
(request)
направление) вперед к загрузчику(Downloader)
. - После загрузки страницы загрузчик генерирует
Response
, и передать его через промежуточное ПО загрузки (возврат(response)
направлении) к двигателю. - Движок получает от загрузчика
Response
и черезSpider中间件
(направление ввода) отправляется в Spider для обработки. -
Spider
иметь дело сResponse
и вернуть просканированноеItem
И (продолжение) новый запрос к движку. - Движок отдает просканированный элемент (возвращенный пауком) в
Item Pipeline
, отправьте Запрос (возвращенный Пауком) планировщику. - (с шага 2) повторять до тех пор, пока в планировщике больше не останется
request
, двигатель выключает сайт.
Справочник по обучению скрапи
Следующий блоггер перечисляет два обучающихscrapy
справочный материал.
- Первое, конечно, что и говорить, официальная документация по scrapy хорошо написана и детализирована. Ссылка: https://doc.scrapy.org/en/latest/index.html
- Вторая — книга о скрапи,"обучение скраппи"
Ссылаться на: https://doc.scrapy.org/en/latest/index.html https://www.cnblogs.com/x-pyue/p/7795315.html
Если вы хотите изучить большие данные Python, вы можете подписаться на общедоступную учетную запись WeChat.Python数据科学
, блоггеры всегда будут обновлять захватывающий контент и делиться более практичными пояснениями, погружая вас в мир данных.