Парсинг веб-страниц
Что такое парсинг веб-страниц?
Вероятно, многие из нас использовали комбинацию клавиш CTRL + C и CTRL + V на веб-странице, чтобы скопировать информацию в документ Word, таблицу Excel или сохранить изображение. Некоторые не знают, но этот процесс можно автоматизировать и сделать гораздо быстрее с помощью инструментов, называемых парсерами веб-страниц. Также известные как "краулеры", "харвестеры", "боты" и другие названия, парсинг - это техника, при помощи которой мы можем получать, обрабатывать и хранить информацию в большом объеме и за короткое время с веб-сайтов.
Но как это работает?
Парсеры используют структуру веб-страниц для идентификации и хранения информации.
Функция парсеров заключается в том, чтобы обратиться к интересующему нас веб-сайту, идентифицировать и извлечь элементы, содержащие нужную нам информацию, без необходимости посещать его с помощью веб-браузера; поэтому сбор и анализ информации становится намного эффективнее, чем при ручном выполнении.
Какие проблемы существуют при парсинге веб-страниц?
Для выполнения парсинга веб-страниц необходимо учитывать различные факторы.
Какая информация является релевантной и/или надежной?
Проверка важности и достоверности информации помогает избежать ресурсов, которые не будут полезны в будущем.
Можно ли получить информацию с помощью API?
Такие интерфейсы позволяют сэкономить время и усилия, которые мы бы потратили на парсинг, предоставляя нам необходимую информацию.
Каждый веб-сайт имеет свою уникальную структуру.
Кроме того, страницы могут изменяться несистематически, включая свой исходный код; поэтому важно регулярно отслеживать любые сбои в наших парсерах.
И, какую информацию мы можем парсить?
Любую.
Любую информацию, которую можно найти на веб-странице, можно парсить, при соблюдении определенных условий.
Информация, которую мы можем найти в Интернете, очень разнообразна и иногда подчинена условиям использования и распространения. Если мы пренебрежем этими условиями, мы можем столкнуться с юридическими проблемами.
В настоящее время легальность парсинга вызывает много разногласий, и законы, касающиеся этой темы, различаются от страны к стране.
Теперь практический пример
Предположим, мы просматриваем статью об актрисе Аманде Форман на Википедии и хотим сохранить ее информацию в каком-то виде, не копируя и не вставляя данные вручную.
Вот скрипт, который выполнит эту работу за нас!
Рабочий процесс очень прост:
1. Отправить запрос, чтобы получить полный контент веб-страницы.
2. Найти теги в исходном коде.
3. Извлечь содержимое этих тегов.
Прежде всего, нам понадобятся две библиотеки: BeautifulSoup и requests.
from bs4 import BeautifulSoup
import requests
Requests поможет нам отправить запрос на сайт для получения исходного кода, а BeautifulSoup разберет его и упростит навигацию по элементам HTML.
Для первого шага запрос будет выглядеть следующим образом:
response = requests.**get**('https://es.wikipedia.org/wiki/Amanda_Foreman').contentbody = **BeautifulSoup**(response, features='html.parser')
Для второго и третьего шагов мы можем использовать инструменты разработчика Google Chrome, чтобы легко увидеть, какие HTML-теги содержат нужную нам информацию. В этом случае нам нужно имя в качестве заголовка, подзаголовок "биография" и два абзаца с содержимым.
name = body.find('h1').text
header = body.find('h2').text
biography = body.findAll('p')
Вот результат, когда мы печатаем содержимое каждого из них:
Советы при парсинге
В заключение, вот несколько руководящих советов при принятии решения о том, нужно ли выполнять парсинг веб-сайта или нет.