Чему вы здесь научитесь?

  • Простое объяснение парсинга веб-страниц
  • Написание кода python для извлечения значения слова из веб-сайта словаря с использованием Beautifulsoup.

Веб-скрапинг:

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

У него много названий: веб-скрапинг, веб-сбор данных, извлечение веб-данных или как бы вы это ни называли, все они делают одно и то же.

Как это работает. Веб-страницы создаются с использованием текстовых языков разметки. У них есть теги, классы, которые необходимы для оформления всей страницы. Для извлечения определенной части данных будут использоваться эти теги, классы. Покажу вам позже в этой статье.

То, что я здесь объясняю, — это самое основное. О веб-скрапинге можно узнать гораздо больше.

ПРИМЕЧАНИЕ. Веб-скрапинг запрещен для некоторых веб-сайтов (убедитесь, что вы проверили это, прежде чем извлекать данные с сайта), но здесь мы делаем это в образовательных целях. Итак, это должно быть хорошо. Я думаю😐.

Прекрасный суп:

Для разработки нашего проекта словаря мы будем использовать Beautifulsoup. Это пакет Python для анализа документов HTML и XML. Я не буду подробно рассказывать о Beautifulsoup. Мы используем его здесь, потому что он очень прост и легок в освоении. Вы можете использовать другие более мощные инструменты, такие как Scrapy, Selenium и т. д.

Начнем кодирование:

Мы напишем простой код для извлечения значения слова из словаря на сайте (oxfordlearnersdictionaries).

Когда мы ищем значение слова «привет», это то, что мы получили с веб-сайта.

Давайте извлечем некоторые данные с этой страницы, такие как значение слова, примеры предложений и т. д.

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

  • Во-первых, вам нужно установить пакеты requests и bs4, если вы еще не установили
  • Создайте файл python (.py) и добавьте эти импорты
  • Давайте сделаем HTTP-вызов для поиска слова «привет».
  • Мы создадим объект Beautifulsoup из текста ответа.
  • Мы собираемся создать отдельные методы для получения происхождения и определения искомого слова.
  • Если возникнут какие-либо проблемы с извлечением атрибутов, мы будем считать это "Слово не найдено". (Это не лучший подход к обработке ошибок. Вы можете прочитать текст слова «не найдено» из ответа HTTP, чтобы обработать эту ошибку, если искомое слово не может быть найдено. Я оставлю это вам)
  • Если вы проверите ту часть веб-страницы, где отображается происхождение слова, вы заметите этот тег "span"с " wordorigin»в качестве значения атрибута «unbox»
  • Мы можем использовать эту информацию, чтобы извлечь происхождение слова

  • Эти ниже простые 2 строки кода получат исходную часть ответа и извлекут текст
  • Давайте извлечем определения и примеры предложений
  • Если вы проверите часть определения, она находится в теге "ul" с классом "senses_multiple". У каждого тега li в этом списке есть определение и примеры предложений.
  • В строке нет. 4 мы используем метод "find_all()" для извлечения всех HTML-тегов "li" с классом "sense". Он возвращает список элементов. Каждый пункт имеет определение и примеры предложений.
  • Сделайте цикл, чтобы пройти через каждое определение
  • В результате проверки мы видим, что предложение определения находится в теге "span" с классом "def". Итак, это то, что мы извлекаем в строке №. 6
  • Подобно тому, что мы сделали для определения, мы видим, что все примеры предложений находятся в теге "ul" с классом "examples". Итак, давайте получим текст для каждого "li" внутри тега "ul".
  • Теперь у нас есть разные методы для получения происхождения слова, определений и примеров, мы можем провести некоторое тестирование.
  • Ниже приведен весь код, вы можете поместить любое слово в переменную word_to_search, чтобы получить определение
  • Запустите код в терминале

Веб-скрапинг может сделать гораздо больше, чем мы делаем здесь. Так что, если вам интересно, исследуйте больше и создайте отличный продукт.

Удачного кодирования.

Спасибо за чтение. Надеюсь, вам понравится. (●’◡’●)