Парсинг веб-страниц на Python
Table Of Content
Введение
В настоящее время мир движется в сторону Data Science и Machine Learning. Топливом, которое требуется этим областям, являются данные, и мы получаем данные из двух основных источников:
- Использование API:
Эти API предоставляются различными веб-сайтами, которые позволяют извлекать данные. Пример: Facebook Graph API
- Парсинг веб-страниц:
В этой технике веб-страница анализируется для извлечения полезной информации. Эта техника называется парсингом веб-страниц или сбором данных с веб-страниц.
Шаги, включенные в парсинг веб-страниц:
Шаг 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. Это включает несколько подшагов:
- Создайте книгу Excel с одной вкладкой
- Запишите заголовочную информацию в этот лист1
- Теперь запишите информацию, которую мы извлекли из веб-страницы
- Сохраните Excel
Теперь давайте посмотрим, как выглядит наш Excel
Поздравляю! Вы успешно проанализировали веб-страницу, чтобы извлечь ее полезное содержимое. Аналогично вы можете попробовать это на других веб-страницах.
Могу ли я парсить любой веб-сайт???
Вы можете выполнять парсинг практически на любом веб-сайте, большинство веб-сайтов обычно реализуют блокировки, чтобы предотвратить их парсинг. Вы можете узнать, есть ли эти блокировки в файле robots.txt или в условиях использования. Однако эти правила ни в коем случае не являются обязательными с точки зрения закона.