Используйте эти замечательные инструменты поискового робота Python, чтобы получить нужные вам данные.
В идеальном мире все необходимые вам данные должны быть четко представлены в общедоступном и хорошо документированном формате, который вы можете легко загрузить и использовать там, где вам это нужно.
Однако в реальном мире данные беспорядочны, редко упаковываются так, как вам нужно, или часто устаревают.
Нужная информация часто скрывается на веб-сайте. Больше сайтов не делают этого, чем некоторые сайты, которые четко и тактично представляют свои данные.Сканировать данныеcrawling,Раскопки данныхscraping, обработка данных, организация данных — это действия, необходимые для получения всей структуры веб-сайта для отображения топологии веб-сайта для сбора данных, которые могут храниться в формате веб-сайта или в собственной базе данных.
Возможно, в ближайшем будущем вам придется копать и копать, чтобы получить некоторые данные, которые вам нужны, но, конечно, вам почти наверняка придется немного попрограммировать, чтобы все было правильно. Что вы будете делать, зависит от вас, но я считаю, что сообщество Python является хорошим поставщиком инструментов, фреймворков и документации, которые помогут вам получать данные с веб-сайтов.
Прежде чем мы продолжим, вот небольшая просьба: пожалуйста, подумайте, прежде чем что-то делать, и, пожалуйста, наберитесь терпения. Проползти это дело не просто. Не сканируйте сайт, а просто копируйте его и относитесь к чужой работе как к своей (конечно, без разрешения). Помните об авторских правах и лицензировании, а также о том, какие стандарты применяются к контенту, который вы сканируете. уважатьrobots.txtдокумент. Не настраивайте таргетинг на сайт слишком часто, иначе у реальных посетителей возникнут проблемы с доступом к нему.
Помня об этих предостережениях, вот несколько отличных инструментов веб-сканирования Python, которые вы можете использовать для получения необходимых данных.
Pyspider
Давайте начнем сpyspiderНачните знакомство. Это веб-сканер с веб-интерфейсом, который позволяет легко отслеживать несколько сканеров. Он масштабируется и поддерживает несколько серверных баз данных и очередей сообщений. Он также имеет несколько удобных функций, от определения приоритетов до повторного посещения страниц, которые не удалось просканировать, а также сканирования в хронологическом порядке и других функций. Pyspider поддерживает как Python 2, так и Python 3. Чтобы добиться более быстрого сканирования, вы можете использовать несколько сканеров для одновременного сканирования в распределенной среде.
Базовое использование Pyspyder хорошоДокументация, включая простые фрагменты кода. Вы можете проверитьонлайн образецчтобы испытать пользовательский интерфейс. Это с открытым исходным кодом под лицензией Apache 2, Pyspyder По-прежнему активно развивается на GitHub.
MechanicalSoup
MechanicalSoupчрезвычайно популярная и универсальная библиотека для разбора HTML, основанная наBeautiful SoupСоздал библиотеку краулеров. Если ваш краулер должен быть довольно простым, но требует установки некоторых флажков или ввода текста, и вы не хотите писать отдельный краулер для этой задачи, то этот вариант стоит рассмотреть.
MechanicalSoup имеет открытый исходный код под лицензией MIT. Посмотрите этот проект на GitHubexample.pyПримеры файлов для большего использования. К сожалению, пока у этого проекта нет хорошей документации.
Scrapy
Scrapy— это платформа парсинга с активной поддержкой сообщества, где вы можете создавать свои собственные инструменты парсинга. В дополнение к инструментам очистки и синтаксического анализа он может легко выводить собранные данные в таких форматах, как JSON или CSV, и сохранять их в серверной базе данных по вашему выбору. Он также имеет множество встроенных расширений для таких задач, как обработка файлов cookie, спуфинг прокси, ограничение глубины сканирования и т. д., а также создание собственных дополнительных API.
Чтобы узнать о Scrapy, вы можете проверитьонлайн-документацияили получить доступ к его многочисленнымСообществоРесурсы, включая канал IRC, сабреддиты Reddit и следующий за ними StackOverflow. Этикетка. Код Scrapy находится в открытом доступе под лицензией BSD с тремя предложениями, и вы можете найти его по адресуGitHubнайти их на.
Если вы совсем новичок в программировании,PortiaОбеспечивает простой в использовании визуальный интерфейс.scrapinghub.comПредоставляется управляемая версия.
разное
- ColaЕсли вы ищете решение для Python 2, то, называя себя «продвинутой распределенной структурой сканирования», это может удовлетворить ваши потребности, но обратите внимание, что оно не обновлялось более двух лет.
- Demiurge— еще один потенциальный кандидат для рассмотрения, который поддерживает как Python 2, так и Python 3, хотя разработка этого проекта идет медленно.
- Если вы анализируете некоторые данные RSS и Atom,FeedparserМожет быть полезный проект.
- LassieУпрощает получение базового контента, такого как описания, заголовки, ключевые слова или изображения с веб-сайтов.
- RoboBrowser— еще одна простая библиотека, основанная на Python 2 или Python 3, имеющая базовые функции для нажатия кнопок и заполнения таблиц. Хотя он давно не обновлялся, это все еще хороший вариант.
Это далеко не полный список, конечно, если вы являетесь экспертом в области программирования, вы можете выбрать свой собственный подход вместо использования одной из этих платформ. Или вы найдете альтернативу, написанную на другом языке. Например, программисты Python могут предпочестьПоставляется с Питоном Selenium, которые можно сканировать без использования реального браузера. Если у вас есть любимый инструмент для парсинга и майнинга, сообщите нам об этом в комментариях ниже.
(Заглавное изображение:You as a Machine. Modified by Rikki Endsley. CC BY-SA 2.0)
via: open source.com/resources/afraid…
автор:Jason BakerПереводчик:ZH1122Вычитка:wxy
Эта статья написанаLCTTоригинальная компиляция,Linux КитайЧесть запуска