Прочесывание знаний поисковым роботом Python

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

Чтобы изучить любую технологию, вы должны учиться с целью. Цель похожа на маяк, который ведет вас вперед. Многие люди учатся учиться и сдаваться. Большая часть причин в том, что нет четкой цели. Поэтому, когда вы готовы научиться ползать Прежде спросите себя, почему вы хотите научиться ползать. Некоторые из них предназначены для работы, некоторые — для развлечения, а некоторые — для определенной функции черной технологии. Но несомненно, что обучение ползанию может значительно облегчить вашу работу.

Как новичок с нулевой базой, его можно условно разделить на три этапа: первый этап — начать работу и овладеть необходимыми базовыми знаниями, такими как основы Python, основные принципы сетевых запросов и т. д. Второй этап заключается в том, чтобы подражать поисковым роботам других людей и следовать им. Изучение кода, понимание каждой строки кода и знакомство с основными инструментами поисковых роботов. Третий этап — сделать это самостоятельно. На этом этапе у вас появляются собственные идеи по решению проблем и вы можете проектировать гусеничные системы самостоятельно.

Технологии, задействованные в сканере, включают, помимо прочего, знание языка программирования (здесь в качестве примера используется Python), знание HTML, базовые знания протокола HTTP, регулярных выражений, знание баз данных, использование общего захвата пакетов. инструменты, использование платформы искателей и связанные с ними Крупномасштабные сканеры также должны понимать распределенные концепции, очереди сообщений, часто используемые структуры данных и алгоритмы, кэширование и даже приложения машинного обучения.Крупномасштабные системы поддерживаются многими технологиями. Анализ данных, майнинг и даже машинное обучение неотделимы от данных, а данные часто нужно получать с помощью краулеров, поэтому у профессионального инженера краулеров большое будущее.

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

Чтобы написать сканер на Python, вам сначала нужно знать Python, понимать базовый синтаксис и знать, как использовать общие методы в функциях, классах, списках и словарях. Тогда вам нужно понимать HTML. HTML — это древовидная структура документа. В Интернете есть 30-минутный вводный курс по HTML.德二朝.net/tutorials/ также…достаточно. Тогда есть знание HTTP, Основной принцип работы сканера — это процесс загрузки данных с удаленного сервера через сетевой запрос, а технология, лежащая в основе этого сетевого запроса, основана на протоколе HTTP. Как сканеру начального уровня, вам необходимо понимать основные принципы протокола HTTP.Хотя спецификацию HTTP нельзя написать в одной книге, подробное содержание можно прочитать позже, сочетая теорию с практикой.

Фреймворки сетевых запросов — это все реализации протокола HTTP.Например, известная библиотека сетевых запросов Requests — это сетевая библиотека, которая имитирует браузеры для отправки HTTP-запросов. Поняв протокол HTTP, вы можете специально изучить модули, связанные с сетью. Например, Python поставляется с urllib, urllib2 (urllib в Python3), httplib, файлами cookie и т. д. Конечно, вы можете пропустить их напрямую. Чтобы узнать, как использовать Запросы напрямую, предпосылка заключается в том, что вы знакомы с основным содержанием протокола HTTP. Данные поднимаются вниз. В большинстве случаев это текст HTML, а некоторые данные основаны на формате XML или формате Json. Для обработки этих данных правильно, вы должны быть знакомы с ним.Решение для каждого типа данных, таких как данные JSON, может напрямую использовать модуль json, который поставляется с Python.Для данных HTML вы можете использовать библиотеки, такие как BeautifulSoup и lxml для их обработки.Для xml, вы можете использовать сторонние библиотеки, такие как untangle и xmltodict.

В инструменте сканирования научитесь использовать браузер Chrome или FireFox для проверки элементов, отслеживания информации о запросах и т. д. Теперь большинство веб-сайтов имеют адреса с доступом к APP и мобильному браузеру. Сначала относительно проще использовать эти интерфейсы. Также используются прокси-инструменты, такие как Fiddler.

Чтобы начать работу с поисковыми роботами, не обязательно изучать регулярные выражения. Вы можете изучить их, когда они вам действительно понадобятся. Например, после обратного обхода данных вам нужно очистить данные. Если вы не можете с этим справиться, вы можете попытаться понять регулярные выражения в это время, и это часто может сделать больше с меньшими затратами. Модуль Python re можно использовать для обработки регулярных выражений. Здесь также рекомендуется учебник: Руководство по регулярным выражениям Pythonблог woo woo woo.cn на.com/breath/arc hiv…

После очистки данных их необходимо постоянно хранить.Вы можете использовать файловое хранилище, такое как файлы CSV, или хранилище базы данных, простое использование sqlite, профессиональное использование MySQL или распределенную базу данных документов MongoDB, все эти базы данных совместимы с Python. Очень дружелюбный, с поддержкой готовых библиотек, все, что вам нужно сделать, это ознакомиться с тем, как используются эти API.

Базовый процесс от сбора данных до очистки и хранения завершен. Его можно рассматривать как базовую запись. Следующим шагом является проверка внутренних навыков. Многие веб-сайты имеют стратегии защиты от сканирования, и они пытаются помешать вам использовать нестандартные средства. для их получения.Данные, например, будут всякие странные проверочные коды, чтобы ограничить работу вашего запроса, ограничить скорость запроса, ограничить IP и даже зашифровать данные. Короче говоря, это увеличить стоимость получения данные. В настоящее время вам нужно освоить больше знаний: вам нужно глубоко понимать протокол HTTP, вам нужно понимать общие алгоритмы шифрования и дешифрования, вам нужно понимать файлы cookie в HTTP, HTTP-прокси и различные HEADER в HTTP. Рептилии и антирептилии — это пара, которая любит друг друга и убивает друг друга. Как бороться с антирептилиями не имеет устоявшегося единого решения, это зависит от вашего опыта и имеющейся у вас системы знаний. Это не та высота, которую вы можете достичь всего за 21-дневный вводный курс.

Для крупномасштабного сканирования мы обычно начинаем сканирование с URL-адреса, а затем добавляем URL-ссылку, проанализированную на странице, в набор URL-адресов для сканирования.Нам нужно использовать очередь или приоритетную очередь, чтобы различать некоторые веб-сайты для сканирования. сначала, а некоторые веб-сайты будут сканироваться позже. Каждый раз, когда страница сканируется, следует ли использовать алгоритм «сначала в глубину» или «сначала в ширину» для сканирования следующей ссылки. Каждый раз, когда инициируется сетевой запрос, включается процесс разрешения DNS (преобразование URL-адреса в IP-адрес).Чтобы избежать повторного разрешения DNS, нам необходимо кэшировать разрешенный IP-адрес. Существует так много URL-адресов, как определить, какие URL-адреса были просканированы, а какие нет? Проще всего использовать структуру словаря для хранения просканированных URL-адресов, но если вы столкнетесь с большим количеством URL-адресов, объем памяти, занимаемый словарем, очень велик. На этом этапе вам необходимо рассмотреть возможность использования фильтра Блума, который использует поток для обхода данных один за другим, что очень неэффективно. Если эффективность сканера повышается, следует ли использовать многопоточность, многопроцессорность, сопрограмма или распределенная операция.

Блог:foofish.net
Публичный номер: Zen of Python

Python之禅
Дзен Питона