Найти в Дзене
Машинное обучение

Python: Анализ любого сайта за секунды с помощью одной строки кода

Оглавление

Scrapeasy

Scrapeasy - это библиотека для Python, которая позволяет легко обрабатывать веб-страницы и извлекать из них данные. Ее можно использовать для поиска данных с одной страницы или с нескольких страниц. Она также может использоваться для извлечения данных из PDF-файлов и HTML-таблиц.

Scrapeasy позволяет вам осуществлять сканирование веб-сайтов с помощью python, используя всего одну строку кода. Он очень прост в использовании и все делает за вас. Просто укажите сайт, который вы хотите исследовать, и какие данные вы хотите получить, а Scrapeasy сделает все остальное.

Скребок Scrapeasy Python был написан для быстрого использования. Он предоставляет следующие ключевые возможности

  • Анализ веб-сайтов - не только отдельных страниц - одним щелчком мыши.
  • Наиболее распространенные действия скрапера (получение ссылок, изображений или видео) уже реализованы.
  • Получение специальных типов файлов, таких как .php или .pdf, с исследованного веб-сайта.

Как использовать Scrapeasy

Скачать через pip

$ pip install scrapeasy

Использование

Scrapeasy был разработан с учетом простоты использования. Сначала импортируйте сайт и страницу из Scrapeasy

from scrapeasy import Website, Page
-2

Инициализация веб-сайта

Сначала давайте создадим новый объект Website. Для этого просто укажите url главной страницы. Я буду использовать URL сайта, который я создал несколько лет назад:

web =Website("https://tikocash.com/solange/index.php/2022/04/13/how-do-you-control-irrational-fear-and-overthinking/")
-3

Получение ссылок всех подсайтов

Итак, теперь, когда мы инициализировали наш веб-сайт, нас интересуют все подсайты, существующие на fahrschule-liechti.com. Чтобы выяснить это, попросите web-объект получить ссылки всех подстраниц.

links = web.getSubpagesLinks()
-4

В зависимости от вашего локального интернет-соединения и скорости сервера домена, с которого вы производите поиск, этот запрос может занять некоторое время. Убедитесь, что вы не собираете с помощью этого метода целые веб-страницы, которые невероятно велики.

Но вернемся к получению ссылок: Вызывая .getSubpagesLinks(), вы запрашиваете все подстраницы как ссылки и получаете список ссылок.

links2 = web.getSubpagesLinks()
-5

Вы, наверное, заметили, что типичный http://www.-stuff отсутствует. Это не специально и облегчает вам жизнь для дальнейшей работы со ссылками. Но убедитесь, что когда вы действительно захотите вызвать их в браузере или через запросы, вы добавите http://www. перед каждой ссылкой.

Поиск медиа

Давайте попробуем найти ссылки на все изображения, которые fahrschule-liechti.com разместил на своем сайте. Для этого вызовем метод .getImages().

images = web.getImages()

В ответе будут содержаться ссылки на все доступные изображения.

-6

Скачать медиа

Круто! Теперь давайте займемся более продвинутыми вещами. Нам нравятся фотографии, которые есть на сайте fahrschule-liechti.com, поэтому давайте загрузим их все на наш локальный диск. Звучит как много работы? На самом деле это очень просто!

web.download("img", "fahrschule/images")

Во-первых, мы определили, что будем загружать все изображения-медиа через ключевое слово img. Затем мы определили выходную папку, в которую должны быть сохранены изображения. Вот и все! Запустите код и посмотрите, что происходит. В течение нескольких секунд вы получили все изображения, имеющиеся на сайте Tikocash.com.

Получение связанных доменов

Далее, давайте выясним, на какие страницы ссылается fahrschule-liechti.com. Чтобы получить общий обзор, давайте просто выясним, на какие другие домены он ссылается. По этой причине мы указываем только доменные ссылки.

domains = web.getLinks(intern=False, extern=False, domain=True)
-7

В результате мы получим список всех доменов, которые где-то ссылаются на tikocash.com

Хорошо, но теперь мы хотим получить более подробную информацию об этих ссылках. Как нам это сделать?

Получение связанных доменов

Более подробные ссылки - это не что иное, как внешние ссылки. Поэтому мы делаем тот же запрос, но на этот раз включаем внешние ссылки, но не домены.

domains = web.getLinks(intern=False, extern=True, domain=False)

Тадаа, мы получаем все внешние ссылки в полном объеме.

Инициализация страницы

Итак, к этому моменту мы уже немного узнали о том, что такое веб-сайт, но мы еще не выяснили, что делает страница. Ну, как уже было сказано, страница - это просто отдельный сайт из веб-сайта. Давайте попробуем это на другом примере, инициализировав страницу школы w3.

w3=Page("https://www.w3schools.com/html/html5_video.asp")

Через секунду вы увидите, почему я выбрал именно эту страницу, если вы еще не догадались.

Загрузка видео

Да, вы не ослышались. Scrapeasy позволяет загружать видео с веб-страниц за считанные секунды. Давайте посмотрим, как это делается.

w3.download("video", "w3/videos")

Да, это все. Просто укажите, что вы хотите загрузить все видео в выходную папку w3/videos, и все готово. Конечно, вы также можете просто получать ссылки на видео и загружать их позже, но это было бы не так круто.

video_links = w3.getVideos()
-8

Загрузка файлов других типов (например, pdf или ics)

Давайте теперь будем более общими. Как насчет загрузки специальных типов файлов, таких как .pdf, .php или .ico? Используйте общий метод .get() для получения ссылок или метод .download() с указанием типа файла в качестве аргумента. Давайте воспользуемся методом get для получения убедительных ссылок на календарные данные о клубе компьютерных наук университета Цюриха, UZH:

calendar_links = Page("https://www.icu.uzh.ch/events/id/207").get("ics").

Выполнено.

Давайте теперь загрузим некоторые PDF-файлы. Мы уже должны знать, как использовать .download(), но я продемонстрирую это в последний раз.

Page("http://mathcourses.ch/mat182.html").download("pdf", "mathcourses/pdf-files")

В заключение хочу сказать, что Python - это универсальный язык, который можно использовать для сканирования любого веб-сайта за считанные секунды с помощью всего одной строки кода. Это делает его мощным инструментом для веб-скрейпинга и добычи данных. Так что если вам нужно извлечь данные с веб-сайта, Python - это инструмент для вас.

Что-то пошло не так, и нам не удалось загрузить комментарии. Попробуйте ещё раз
Рекомендуем почитать
3 неочевидных признака плохого разработчика: часть 2
Есть ряд признаков, по которым вы сможете понять, что перед вами слабый программист. Первые три — сбивчивая речь, злоупотребление жаргонизмами и перфекционизм — мы разобрали в предыдущей части статьи. Сегодня рассмотрим еще три. Определить слабого разработчика можно на собеседовании, в ходе совместной работы или даже в процессе неформального разговора в курилке. Его выдают ряд признаков — некоторых закономерностей, каждая из которых не является гарантией того, что перед вами — «плохой» разработчик...
С какого языка начать: Python vs JavaScript в 2025 году
Вопрос «с какого языка начать программировать» остаётся актуальным в 2025 году, и чаще всего выбор сводится к двум вариантам — Python и JavaScript. Оба языка — мощные, с активным сообществом и большим количеством учебных материалов. Каждый них обладает уникальными характеристиками, предназначенными для определенных задач и сфер применения. Правильный выбор может повлиять на производительность, масштабируемость, и даже на успешное завершение проекта. Мы разберем ключевые особенности каждого языка, их сильные и слабые стороны, а также области, в которых они проявляют себя наилучшим образом...
ИИ снова в центре скандала: Google приостанавливает генерацию изображений в Gemini
Алгоритмы ошиблись — и это стоило репутации. Google приостановила работу функции генерации изображений в своём ИИ-сервисе Gemini после шквала критики и обвинений в искажении исторических и этнических реалий. В центре внимания — изображения людей, которые ИИ рисует с «гипертолерантным уклоном», игнорируя факты и контекст. Gemini, новый флагманский ИИ от Google (бывший Bard), умеет не только писать тексты, но и генерировать изображения. И вот тут случился казус. Пользователи начали массово делиться...
Следующая статья
Документы, вакансии и контакты