Скрапинг сайтов на Python [Использование Python в OSINT]

Скрапинг сайтов Python

Продолжаем цикл статей «Использование Python в OSINT». В этот раз рассмотрим скрапинг. Для тех, кто не в курсе — это извлечение данных с веб-сайта. Далее покажу, как использовать Python для скрапинга сайтов.

Еще по теме: Использование Python для работы с веб-архивом

Скрапинг сайтов

Если говорить о скрапинге и Python, то писать собственный скрипт с нуля для каждой задачи — чаще всего не лучшее решение. Лучше сначала найти и попробовать разные готовые решения:

  • Расширение Web Scraper для Chrome.
  • Расширение AnyPicker для Chrome.
  • ScrapeStorm
  • Если вам нужно собрать данные из социальных сетей, попробуйте использовать что-то, созданное специально для конкретной платформы. Например, инструмент yttool для YouTube или Stweet для Twitter.

Скрапинг сайтов на Python

Но иногда вы можете столкнуться с задачей, для которой нет готовых решений. В таком случае придется писать скрипт. Для скрапинга сайтов есть множество пакетов Python:

  • Scrapy
  • Selenium
  • ZenRows
  • BeautifulSoup

Мы будем использовать пакет BeautifulSoup (https://pypi.org/project/beautifulsoup4/). Он установлен по умолчанию.

Пакет Beautifulsoup также может быть полезен для работы с данными в формате XML Вы можете столкнуться с ним, в частности, при получении данных из какого-либо API. В этом случае помимо Beautifulsoup следует использовать пакет LXML (https://lxml.de).

Запустите скрапинг.py:

Скрапинг сайтов Python

Мы используем CSS-селекторы для поиска элементов на веб-странице:

  • h1 — элемент с тегом h1.
  • .headers — элементы с классом заголовков.
  • #header — элементы с идентификатором заголовка.
  • div.reblocks — элементы с тегом div и классом redblocks.
  • [autofocus="true"] — элементы с атрибутом autofocus со значением «true«

Еще CSS-селекторы:

https://www.freecodecamp.org/news/css-selectors-cheat-sheet/

Самый простой способ узнать, какой селектор соответствует тому или иному html-элементу, — посмотреть исходный код страницы с помощью инструментов разработчика, которые есть в каждом браузере.

Скрапинг вебсайтов Python

А для скрапинга страниц со сложной структурой, которая содержит множество вложенных элементов, можно использовать специальные браузерные расширения, отображающие полный путь (path) к элементу. Например, HTML DOM-навигация.

Скрапинг веб-сайтов Python

Часто бывает так, что код, который отображается при загрузке сайта скриптами Python, сильно отличается от того, что отображается в браузере. Это связано с тем, что некоторые элементы добавляются после загрузки страницы путем выполнения кода JavaScript.

Чтобы понять, что я имею в виду, попробуйте посмотреть на код учетной записи Twitter с помощью View Rendered Source.

Скрапинг сайтов Питон

С его помощью вы можете наглядно сравнить, как выглядит HTML-код сразу после получения запроса от сервера, и как он выглядит после выполнения определенных действий на странице (попробуйте немного прокрутить ленту вниз и снова перезапустить расширение).

Для скрапинга сайтов, код которых сильно меняется после выполнения кода JavaScript в браузере, можно использовать Selenium. Он позволяет использовать Python для открытия разных браузеров и имитации действий пользователя в них.

ПОЛЕЗНЫЕ ССЫЛКИ:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *