Всемирная паутина - всеобъемлющий и окончательный источник всех имеющихся данных. Быстрое развитие Интернета за последние три десятилетия беспрецедентно. В результате каждый день в сети монтируются сотни терабайт данных.
Все эти данные имеют определенную ценность для определенного человека. Например, ваша история просмотров имеет значение для приложений социальных сетей, поскольку они используют ее для персонализации рекламы, которую они вам показывают. И за эти данные тоже ведется большая конкуренция; несколько мегабайт дополнительных данных могут дать предприятиям существенное преимущество перед конкурентами.
Интеллектуальный анализ данных с помощью Python
Чтобы помочь тем из вас, кто плохо знаком со сбором данных, мы подготовили это руководство, в котором мы покажем, как очистить данные из Интернета с помощью Python и Beautiful soup Library.
Мы предполагаем, что вы уже на среднем уровне знакомы с Python и HTML, поскольку вы будете работать с обоими из них, следуя инструкциям в этом руководстве.
Будьте осторожны с тем, на каких сайтах вы пробуете свои новые навыки интеллектуального анализа данных, так как многие сайты считают это навязчивым и знают, что могут быть последствия.
Установка и подготовка библиотек
Теперь мы собираемся использовать две библиотеки, которые мы собираемся использовать: библиотеку запросов python для загрузки содержимого с веб-страниц и библиотеку Beautiful Soup для фактического парсинга процесса. Заметьте, существуют альтернативы BeautifulSoup, и если вы знакомы с одним из следующих, не стесняйтесь использовать их вместо них: Scrappy, Mechanize, Selenium, Portia, kimono и ParseHub.
Библиотеку запросов можно загрузить и установить с помощью команды pip, как показано ниже:
# запросов на установку pip3
Библиотека запросов должна быть установлена на вашем устройстве. Точно так же скачайте BeautifulSoup:
# pip3 install beautifulsoup4
На этом наши библиотеки готовы к действию.
Как упоминалось выше, библиотека запросов не имеет большого применения, кроме извлечения содержимого с веб-страниц. Библиотека BeautifulSoup и библиотеки запросов имеют место в каждом сценарии, который вы собираетесь написать, и их необходимо импортировать перед каждым следующим образом:
$ запросы на импорт$ из bs4 импортировать BeautifulSoup как bs
Это добавляет запрошенное ключевое слово в пространство имен, сигнализируя Python о значении ключевого слова всякий раз, когда запрашивается его использование. То же самое происходит с ключевым словом bs, хотя здесь мы можем назначить более простое ключевое слово для BeautifulSoup.
веб-страница = запросы.получить (URL)Приведенный выше код извлекает URL-адрес веб-страницы и создает из него прямую строку, сохраняя ее в переменной.
$ webcontent = веб-страница.содержаниеПриведенная выше команда копирует содержимое веб-страницы и назначает его переменному веб-содержимому.
На этом мы закончили с библиотекой запросов. Все, что осталось сделать, это изменить параметры библиотеки запросов на параметры BeautifulSoup.
$ htmlcontent = bs (webcontent, «html.парсер ")
Это анализирует объект запроса и превращает его в читаемые объекты HTML.
После того, как все это позаботилось, мы можем перейти к собственно соскабливанию.
Веб-парсинг с помощью Python и BeautifulSoup
Давайте продолжим и посмотрим, как мы можем очистить HTML-объекты данных с помощью BeautifulSoup.
Чтобы проиллюстрировать пример, пока мы объясняем вещи, мы будем работать с этим фрагментом html:
Мы можем получить доступ к содержимому этого фрагмента с помощью BeautifulSoup и использовать его в переменной содержимого HTML, как показано ниже:
В приведенном выше коде выполняется поиск любых тегов с именем
Чтобы одновременно сохранить теги с именем
в список, мы выдадим окончательный код, как показано ниже:
Результат должен быть таким:
Чтобы вызвать одного из
Теперь посмотрим, как выбрать
теги с учетом их характеристик. Чтобы отделить , нам понадобится
для div в супе.find_all ('div', attrs = 'class' = 'Tech_head'):
Это приносит
тег.Вы получите:
Технология
Все без тегов.
Наконец, мы расскажем, как выбрать значение атрибута в теге. В коде должен быть такой тег:
Чтобы оперировать значением, связанным с атрибутом src, вы должны использовать следующее:
htmlcontent.find ("img") ["src"]И на выходе получится:
"images_4 / a-beginners-guide-to-web-scraping-with-python-and-beautiful-soup".jpg "
О, мальчик, это определенно много работы!
Если вы чувствуете, что знакомы с Python или HTML недостаточно, или если вы просто перегружены парсингом веб-страниц, не волнуйтесь.
Если вы представляете бизнес, которому необходимо регулярно получать данные определенного типа, но не можете самостоятельно выполнять очистку веб-страниц, есть способы обойти эту проблему. Но знайте, что это будет стоить вам денег. Вы можете найти кого-нибудь, кто сделает за вас парсинг, или вы можете получить премиум-сервис данных с таких веб-сайтов, как Google и Twitter, чтобы поделиться ими с вами. Они обмениваются частями своих данных с помощью API, но эти вызовы API ограничены в день. Кроме того, такие веб-сайты, как эти, могут очень хорошо защищать свои данные. Обычно многие такие сайты вообще не делятся своими данными.
Последние мысли
Прежде чем мы подведем итоги, позвольте мне сказать вам вслух, если это еще не было самоочевидным; команды find (), find_all () - ваши лучшие друзья, когда вы собираетесь соскабливать с BeautifulSoup. Хотя есть еще кое-что, чтобы освоить очистку данных с помощью Python, этого руководства должно быть достаточно для тех из вас, кто только начинает.