CoderCastrov logo
CoderCastrov
Питон

Парсинг веб-страниц на Python

Парсинг веб-страниц на Python
просмотров
3 мин чтение
#Питон

Введение

В настоящее время мир движется в сторону Data Science и Machine Learning. Топливом, которое требуется этим областям, являются данные, и мы получаем данные из двух основных источников:

  1. Использование API:

Эти API предоставляются различными веб-сайтами, которые позволяют извлекать данные. Пример: Facebook Graph API

  1. Парсинг веб-страниц:

В этой технике веб-страница анализируется для извлечения полезной информации. Эта техника называется парсингом веб-страниц или сбором данных с веб-страниц.

Шаги, включенные в парсинг веб-страниц:

Шаг 1:

Установите необходимую стороннюю библиотеку. Это можно сделать с помощью следующих команд

pip install requestspip install html5libpip install bs4

Шаг 2:

Импортируйте библиотеку в проект Python или в свой блокнот

Если вы задаетесь вопросом, зачем нам нужны эти библиотеки и где мы их используем. Не волнуйтесь, мы рассмотрим это в следующих шагах:

Шаг 3:

Отправка HTTP-запроса на URL веб-страницы, для которой вы хотите получить доступ к данным. На этом шаге сервер ответит HTML-контентом веб-страницы, который можно использовать для извлечения данных.

Отправку HTTP-запроса выполняется в Python с помощью библиотеки requests

Давайте воспользуемся примером веб-сайта, чтобы увидеть, как это сделать

Шаг 4:

Пока все довольно просто. Теперь давайте сделаем это немного интереснее, разбирая этот HTML-ответ с помощью BeautifulSoup. Эта библиотека создана на основе различных библиотек, таких как html5lib, lxml, html.parser и т. д.

Давайте использовать это в нашем коде

Здесь,

**r.content **: Сырой HTML-контент. html5lib : Указание парсера HTML. **soup.prettify(): **Это позволяет визуально представить созданное из сырого HTML-контента дерево разбора.

Шаг 5:

Теперь давайте ищем и анализируем это дерево, которое мы получили в нашей переменной soup. Если вы внимательно посмотрите, мы заинтересованы в содержимом, которое имеет div с идентификатором results

Мы можем извлечь этот div с помощью следующей строки

Уф! мы теперь очень близки к нашим данным. Давайте напишем цикл по этому div, чтобы найти все td, с помощью которых мы можем получить полезную информацию.

В приведенном выше коде мы создали словарь для сохранения всей информации, представленной в строке таблицы. Вложенную структуру можно получить с помощью точечной нотации. Для доступа к тексту внутри элемента HTML мы используем .text

Шаг 6:

Последний шаг! Запись этих данных в Excel. Это включает несколько подшагов:

  1. Создайте книгу Excel с одной вкладкой
  1. Запишите заголовочную информацию в этот лист1
  1. Теперь запишите информацию, которую мы извлекли из веб-страницы
  1. Сохраните Excel

Теперь давайте посмотрим, как выглядит наш Excel

Поздравляю! Вы успешно проанализировали веб-страницу, чтобы извлечь ее полезное содержимое. Аналогично вы можете попробовать это на других веб-страницах.

Могу ли я парсить любой веб-сайт???

Вы можете выполнять парсинг практически на любом веб-сайте, большинство веб-сайтов обычно реализуют блокировки, чтобы предотвратить их парсинг. Вы можете узнать, есть ли эти блокировки в файле robots.txt или в условиях использования. Однако эти правила ни в коем случае не являются обязательными с точки зрения закона.