Парсинг веб-страниц с помощью Python: руководство для начинающих
Опубликовано: 2016-10-10В мире больших данных сервисы веб-скрейпинга или извлечения данных являются основными требованиями для аналитики больших данных. Извлечение данных из Интернета стало почти неизбежным для компаний, чтобы остаться в бизнесе. Следующий вопрос, который возникает, заключается в том, как заниматься парсингом веб-страниц в качестве новичка.

Данные могут быть извлечены или очищены из веб-источника с использованием ряда методов. Популярные веб-сайты, такие как Google, Facebook или Twitter, предлагают API для просмотра и извлечения доступных данных в структурированном виде. Это предотвращает использование других методов, которые могут быть нежелательны для поставщика API. Однако потребность в сканировании веб-сайта возникает, когда информация не предлагается на веб-сайте. Python, язык программирования с открытым исходным кодом, часто используется для парсинга веб-страниц из-за его простой и богатой экосистемы. Он содержит библиотеку BeautifulSoup, которая выполняет эту задачу. Давайте подробнее рассмотрим парсинг веб-страниц с помощью Python.
Настройка среды Python:
Чтобы выполнить парсинг веб-страниц с помощью Python, вам сначала необходимо установить среду Python, которая позволяет запускать код, написанный на языке Python. Библиотеки выполняют парсинг данных;
Beautiful Soup — это удобная в использовании библиотека Python. Это один из лучших инструментов для извлечения информации с веб-страницы. Профессионалы могут сканировать информацию с веб-страниц в виде таблиц, списков или абзацев. Urllib2 — это еще одна библиотека, которую можно использовать в сочетании с библиотекой BeautifulSoup для загрузки веб-страниц. Можно добавить фильтры для извлечения определенной информации с веб-страниц. Urllib2 — это модуль Python, который может получать URL-адреса.
Для MAC OSX:
Чтобы установить библиотеки Python на MAC OSX, пользователям необходимо открыть терминал win и ввести следующие команды, по одной команде за раз:
sudoeasy_install пункт
pip установить BeautifulSoup4
пип установить lxml
Для пользователей Windows 7 и 8:
Пользователям Windows 7 и 8 необходимо сначала установить среду Python. После установки среды откройте командную строку, найдите путь к корневому каталогу C:/ и введите следующие команды:
easy_install BeautifulSoup4
easy_installlxml
После установки библиотек пришло время написать код очистки данных.
Запуск Python:
Очистка данных должна выполняться с определенной целью, например, для сканирования текущего запаса розничного магазина. Во-первых, для навигации по веб-сайту, содержащему эти данные, требуется веб-браузер. Определив таблицу, щелкните ее правой кнопкой мыши в любом месте, а затем выберите элемент проверки в раскрывающемся списке меню. В результате внизу или сбоку экрана появится всплывающее окно с HTML-кодом веб-сайта. Рейтинги отображаются в таблице. Возможно, вам придется просмотреть данные HTML, пока вы не найдете строку кода, которая выделяет таблицу на веб-странице.
Python предлагает несколько других альтернатив для очистки HTML, кроме BeautifulSoup. Они включают:
- Скрапи
- царапина
- Механизировать
Веб-скрапинг преобразует неструктурированные данные из кода HTML в форму структурированных данных, таких как табличные данные на листе Excel. Веб-скрапинг можно выполнять разными способами, начиная от использования Google Docs и заканчивая языками программирования. Для людей, не обладающих знаниями в области программирования или техническими компетенциями, можно получить веб-данные с помощью служб веб-скрейпинга, которые предоставляют готовые к использованию данные с веб-сайтов по вашему выбору.
HTML-теги:
Для выполнения парсинга веб-страниц пользователи должны хорошо разбираться в HTML-тегах. Может быть очень полезно знать, что HTML-ссылки определяются с помощью тега привязки, т.е. тега <a>, «<a href="https://…">Ссылка должна быть здесь </a>». Список HTML состоит из списка <ul> (неупорядоченный) и <ol> (упорядоченный). Элемент списка начинается с <li>.
Таблицы HTML определяются с помощью <Table>, строки как <tr> и столбцы делятся на данные как <td>;
- <!DOCTYPE html>: HTML-документ начинается с объявления типа документа.
- Основная часть HTML-документа в виде неформатированного простого текста определяется тегами <body> и </body> .
- Заголовки в HTML определяются с помощью тегов заголовков от <h1> до <h5>.
- Абзацы определяются с помощью тега <p> в HTML.
- Весь документ HTML содержится между <html> и </html>
Использование BeautifulSoup в парсинге:

При очистке веб-страницы с помощью BeautifulSoup основная задача состоит в том, чтобы определить конечную цель. Например, если вы хотите извлечь список с веб-страницы, требуется пошаговый подход:
- Первым и главным шагом является импорт необходимых библиотек:
#импортировать библиотеку, используемую для запроса веб-сайта
импортировать urllib2
#указываем url wiki="https://"
# Запросите веб-сайт и верните html в переменную «страница»
страница = urllib2.urlopen(вики)
#импортируйте функции «Прекрасный суп» для анализа данных, возвращаемых с веб-сайта.
из bs4 импортировать BeautifulSoup
#Проанализируйте html в переменной page и сохраните его в формате Beautiful Soup
суп = BeautifulSoup(страница)
- Используйте функцию prettify для визуализации вложенной структуры HTML-страницы.
- Работа с тегами Soup:
Soup<tag> используется для возврата содержимого между открывающим и закрывающим тегом, включая тег.
- В[30]:soup.title
Out[30]:<title>Список президентов Индии до 2010 г. – Википедия, бесплатная энциклопедия</title>
- суп.<тег>.строка: возвращает строку в пределах данного тега
- В [38]:soup.title.string
- Out[38]:u 'Список президентов Индии и Бразилии до 2010 года в Индии - Википедия, бесплатная энциклопедия'
- Найдите все ссылки внутри тегов <a> страницы: пометьте ссылку тегом «<a>». Итак, выберите вариант soap.a, и он должен вернуть ссылки, доступные на веб-странице. Давай сделаем это.
- В [40]: суп.а
Out[40]:<a id="top"></a>
- Найдите нужную таблицу:
Поскольку ведется поиск таблицы для получения информации о президентах Индии и Бразилии до 2010 года, важно сначала определить правильную таблицу. Вот команда для обхода информации, заключенной во всех тегах таблицы.
all_tables= суп.find_all('стол')
Определите правильную таблицу, используя атрибут «класс» таблицы, который должен отфильтровать правильную таблицу. После этого проверьте имя класса, щелкнув правой кнопкой мыши нужную таблицу веб-страницы следующим образом:
- Осмотрите элемент
- Скопируйте имя класса или найдите имя класса нужной таблицы из вывода последней команды.
right_table=soup.find('table', class_='Викитаблица, сортируемая простыми заголовками строк')
правая_таблица
Вот как мы можем определить правильную таблицу.
- Извлеките информацию в DataFrame: необходимо выполнить итерацию по каждой строке (tr), а затем присвоить каждый элемент tr (td) переменной и добавить ее в список. Давайте проанализируем HTML-структуру таблицы Table. (извлечь информацию для заголовка таблицы <th>)
Чтобы получить доступ к значению каждого элемента, необходимо использовать опцию «find(text=True)» для каждого элемента. Наконец, есть данные в кадре данных.
Существуют различные другие способы сканирования данных с помощью BeautifulSoup, которые сокращают количество ручных операций по сбору данных с веб-страниц. Код, написанный в BeautifulSoup, считается более надежным, чем регулярные выражения. Обсуждаемый нами метод очистки веб-страниц использует библиотеки BeautifulSoup и urllib2 в Python. Это было краткое руководство для начинающих по использованию Python для парсинга веб-страниц.
Следите за нашей следующей статьей о том, как веб-скрапинг влияет на рост вашего дохода.
Планируете получать данные из Интернета для науки о данных? Мы здесь, чтобы помочь. Дайте нам знать о ваших требованиях.
