Beautifulsoup как установить на windows

Содержание
  1. Использование библиотеки beautifulsoup в Python
  2. Введение
  3. Инструменты
  4. Реализация
  5. Сбор заголовков последних технических новостей
  6. Проверка источника данных
  7. Извлечение веб-страницы
  8. Использование BeautifulSoup
  9. Извлечение заголовка и тела страницы
  10. Поиск HTML-элементов
  11. Поиск HTML-элементов по имени класса
  12. Извлечение текста из HTML-элементов
  13. Облегчаем себе жизнь с помощью BeautifulSoup4
  14. Начало
  15. Практика
  16. Работа с веб-данными с помощью Requests и Beautiful Soup в Python
  17. Требования
  18. Установка Requests
  19. Установка Beautiful Soup
  20. Сбор данных веб-страницы с помощью Requests
  21. Turtle Soup
  22. Документация Beautiful Soup¶
  23. Техническая поддержка¶
  24. Быстрый старт¶
  25. Установка Beautiful Soup¶
  26. Проблемы после установки¶
  27. Установка парсера¶
  28. Приготовление супа¶
  29. Виды объектов¶
  30. Атрибуты¶
  31. Многозначные атрибуты¶
  32. NavigableString ¶
  33. BeautifulSoup ¶
  34. Комментарии и другие специфичные строки¶
  35. Навигация по дереву¶
  36. Проход сверху вниз¶
  37. Навигация с использованием имен тегов¶
  38. Creating a virtual environment (optional)
  39. Linux environment
  40. Windows environment
  41. Installing virtual environment
  42. Screenshot
  43. Installing BeautifulSoup
  44. Linux Machine
  45. Windows Machine
  46. Problems after installation
  47. Installing a Parser
  48. Linux Machine
  49. Windows Machine
  50. Running Beautiful Soup
  51. Output
  52. Output

Использование библиотеки beautifulsoup в Python

Это руководство для начинающих по использованию библиотеки beautifulsoup для парсинга данных с веб сайтов.

Введение

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

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

Он также известен как веб скрейпинг или веб паук.

В интернете очень много информации на эту тему, и она растет довольно быстро. Люди парсят интернет по многим причинам и вот некоторые из них:

Все сводится к тому, какие данные вы хотите получить или отследить в интернете.

Инструменты

Существует множество инструментов и языков программирования для очистки контента в интернете, но Python обеспечивает плавный и простой процесс. Веб-скрейпинг может быть выполнен на Python с помощью таких библиотек, как Requests, BeautifulSoup, Scrapy и Selenium.

Beautifulsoup это лучший выбор при запуске веб-скрейпинга в Python, поэтому мы будем использовать BeautifulSoup4 и библиотеку запросов Python для Web Scraping.

Не все веб-сайты разрешают собирать данные, поэтому перед сбором вам следует проверить политику веб-сайта.

Реализация

Есть всего три шага в очистке веб-страницы:

Сбор заголовков последних технических новостей

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

Проверка источника данных

Итак, вы должны иметь некоторые базовые знания HTML. Чтобы ознакомиться с веб-страницей habr.com, сначала посетите ее сайт habr.com, затем в вашем браузере нажмите CTRL + U, чтобы просмотреть исходный код веб-страницы. Просматриваемый исходный код это тот же самый код, из которого мы будем собирать наши данные.

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

Извлечение веб-страницы

Чтобы собрать информацию с веб-страницы, вы должны сначала извлечь (получить или загрузить) страницу. Но обратите внимание, что компьютеры не видят веб-страницы так, как мы, люди, то есть красивые макеты, цвета, шрифты и тому подобное.

Компьютеры видят и понимают веб-страницы как код, то есть исходный код, который мы видим, когда просматриваем исходный код в браузере, нажимая CTRL + U, как мы это делали при проверке веб-страницы.

Чтобы получить веб-страницу с помощью Python, я буду использовать библиотеку requests, которую вы можете установить с помощью pip:

Чтобы получить веб-страницу с помощью библиотеки запросов, я пишу код:

Переменная response содержит ответ, который мы получаем после отправки запроса на https://www.habr.com/.

response.status_code возвращает код ответа, указывающий, был ли запрос успешным или нет. Код состояния 200 указывает на то, что запрос был успешным, 4** означает ошибку клиента (ошибку с вашей стороны) и 5** означает ошибку сервера.

response.content возвращает содержимое ответа, которое является исходным кодом веб-страницы, и это тот же исходный код, который доступен вам при просмотре его в веб-браузере.

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

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

Beautiful Soup это библиотека Python для извлечения данных из HTML-и XML-файлов. Я буду использовать ее для извлечения необходимых нам данных из нашего исходного кода HTML.

Устанавливаем BeautifulSoup через pip:

Прежде чем сделать какое-либо извлечение, я должен разобрать HTML, который у нас есть:

Класс BeautifulSoup требует двух аргументов: исходного кода HTML страницы, который хранится в response.content, и HTML-parser.

HTML-parser это простой модуль синтаксического анализа HTML, встроенный в Python и BeautifulSoup, который нужен для разбора response.content (исходный код HTML).

Извлечение заголовка и тела страницы

После синтаксического анализа с помощью BeautifulSoup анализируемый HTML-код хранится в переменной Soup, которая является основой всего извлечения, которое мы собираемся сделать. Давайте начнем с извлечения заголовка страницы, элементов head и body:

soup.title возвращает элемент title веб-страницы в формате html(…). Аналогично soup.head и soup.body возвращают элементы head и body веб-страницы.

Поиск HTML-элементов

Выборка только заголовков, head и body веб-страницы по-прежнему дает нам слишком много нежелательных данных. Нам нужны только некоторые данные из тела HTML, такие как поиск определённых HTML-элементов, например, div, a, p, footer, img, и так далее. Моя цель собрать заголовки новостей с веб-страницы. Когда я проводил проверку, вы заметили, что новостные статьи хранились с разбивкой по тегам. Давайте посмотрим, будет ли полезно найти все элементы a на веб-странице:

Поиск всех тэгов a это еще один шаг ближе к цели, но мне все равно нужно быть более конкретным и находить только те элементы a с нужными нам данными.

Как вы можете видеть выше, заголовки новостей находятся в элементах a с именем класса post__title_link, то есть:

Таким образом, нам нужно будет найти только элементы a с классом post__title_link.

Поиск HTML-элементов по имени класса

Чтобы найти все элементы a с классом post__title_link, я пишу следующий код:

ищет все элементы a названием класса post__title_link и возвращает их списком.

Затем мы перебираем возвращенный список и извлекаем из него все элементы, поскольку он содержит искомый текст:

Мы почти закончили, у меня есть список элементов с нашими новостными заголовками в них. Мы должны извлечь их из HTML-элемента (извлечь текст из элементов).

Извлечение текста из HTML-элементов

Ура! Мы спарсили последние заголовки новостей из technewsworld.com. Обратите внимание, что ваши заголовки новостей будут отличаться от моих, так как главная страница всегда обновляется последними новостями.

Читайте также:  Canon mf410 driver windows 10

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

Если вы ищите способ системно подойти к обучению языка программирования Python, рекомендую записаться на курсы онлайн обучения.

Поделиться записью в социальных сетях

Источник

Облегчаем себе жизнь с помощью BeautifulSoup4

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

Статья ориентирована на новичков, таких же как и я.

Начало

Для начала разберем задачу. Взял я малоизвестный сайт новостей об Израиле, так как сам проживаю в этой стране, и хочется читать новости без рекламы и не интересных новостей. И так, имеется сайт, на котором постятся новости: есть новости помеченные красным, а есть обычные. Те что обычные — не представляют собой ничего интересного, а отмеченные красным являются самым соком. Рассмотрим наш сайт.

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

Как видите, сервер отдал нам красивый контейнер новостей (которых, кстати, больше чем на основном сайте, что нам на руку) без рекламы и мусора.

Давайте рассмотрим исходный код, чтобы понять с чем мы имеем дело.

Как видим каждая новость лежит по-отдельности в тэге ‘a’ и имеет класс ‘lenta’. Если мы откроем тэг ‘a’, то заметим, что внутри есть тэг ‘span’, в котором находится класс ‘time2’, либо ‘time2 time3’, а также время публикации и после закрытия тэга мы наблюдаем сам текст новости.

Что отличает важную новость от неважной? Тот самый класс ‘time2’ или ‘time2 time3’. Новости помеченые ‘time2 time3’ и являются нашими красными новостями. Раз уж суть задачи понятна, перейдем к практике.

Практика

Для работы с парсерами умные люди придумали библиотеку «BeautifulSoup4», в которой есть еще очень много крутых и полезных функций, но об этом в следующий раз. Нам также понадобиться библиотека Requests позволяющая отправлять различные http-запросы. Идем их скачивать.

(убедитесь, что стоит последняя версия pip)

Переходим в редактор кода и импортируем наши библиотеки:

Для начала сохраним наш URL в переменную:

Теперь отправим GET()-запрос на сайт и сохраним полученное в переменную ‘page’:

Код вернул нам статус код ‘200’, значит это, что мы успешно подключены и все в полном порядке.

Теперь создадим два списка (позже я объясню для чего они нужны):

Самое время воспользоваться BeautifulSoup4 и скормить ему наш page, указав в кавычках как он нам поможет ‘html.parcer’:

Если попросить его показать, что он там сохранил:

Нам вылезет весь html-код нашей страницы.

Теперь воспользуемся функцией поиска в BeautifulSoup4:

Давайте разберём поподробнее, что мы тут написали.

В ранее созданный список ‘news’ (к которому я обещал вернуться), сохраняем все с тэгом ‘а’ и классом ‘news’. Если попросим вывести в консоль все, что он нашел, он покажет нам все новости, что были на странице:

Как видите, вместе с текстом новостей вывелись теги ‘a’, ‘span’, классы ‘lenta’ и ‘time2’, а также ‘time2 time3’, в общем все, что он нашел по нашим пожеланиям.

Тут мы в цикле for перебираем весь наш список новостей. Если в новости мы находим тэг ‘span’ и класc ‘time2 time3’, то сохраняем текст из этой новости в новый список ‘filteredNews’.

Обратите внимание, что мы используем ‘.text’, чтобы переформатировать строки в нашем списке из ‘bs4.element.ResultSet’, который использует BeautifulSoup для своих поисков, в обычный текст.

Однажды я застрял на этой проблеме надолго в силу недопонимания работы форматов данных и неумения использовать debug, будьте осторожны. Таким образом теперь мы можем сохранять эти данные в новый список и использовать все методы списков, ведь теперь это обычный текст и, в общем, делать с ним, что нам захочется.

Выведем наши данные:

Вот что мы получаем:

Мы получаем время публикации и лишь интересные новости.

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

Надеюсь эта статья поможет новичкам понять, что можно делать с помощью парсеров и поможет им немного продвинуться вперед с обучением.

Спасибо за внимание, был рад поделиться опытом.

Источник

Работа с веб-данными с помощью Requests и Beautiful Soup в Python

Данный мануал научит работать с пакетами Requests и Beautiful Soup для использования данных с веб-страниц. Модуль Requests позволяет интегрировать программы Python с веб-сервисами, а модуль Beautiful Soup предназначен для ускорения анализа экранных данных. С помощью интерактивной консоли Python и этих библиотек можно проанализировать веб-страницу и работать с имеющейся там текстовой информацией.

Требования

Вам понадобится среда разработки Python 3. Чтобы создать такую среду, можно воспользоваться руководствами Настройка локальной среды разработки для Python 3 в Ubuntu 16.04 или Установка Python 3 и настройка среды разработки на сервере Ubuntu 16.04.

Также рекомендуем ознакомиться со следующими статьями:

Кроме того, вам нужно иметь базовые знания о структурах и тегах HTML.

Установка Requests

Разверните среду программирования Python 3. Убедитесь, что вы находитесь в каталоге, в котором находится ваша среда, и выполните следующую команду:

Чтобы работать с веб-страницами, их нужно будет запрашивать. Библиотека Requests позволяет использовать HTTP в своих программах Python.

Установите Requests в среду программирования.

pip install requests
Collecting requests
Downloading requests-2.18.1-py2.py3-none-any.whl (88kB)
100% |████████████████████████████████| 92kB 3.1MB/s
.
Installing collected packages: chardet, urllib3, certifi, idna, requests
Successfully installed certifi-2017.4.17 chardet-3.0.4 idna-2.5 requests-2.18.1 urllib3-1.21.1

Если библиотека Requests была установлена ранее, вы получите такой вывод:

Requirement already satisfied
.

Установка Beautiful Soup

Теперь нужно установить Beautiful Soup с помощью pip. На данный момент последней версией является Beautiful Soup 4.

pip install beautifulsoup4

Collecting beautifulsoup4
Downloading beautifulsoup4-4.6.0-py3-none-any.whl (86kB)
100% |████████████████████████████████| 92kB 4.4MB/s
Installing collected packages: beautifulsoup4
Successfully installed beautifulsoup4-4.6.0

Теперь можно приступать к работе с библиотеками.

Сбор данных веб-страницы с помощью Requests

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

Перейдите в Python Interactive Console:

Импортируйте модуль Requests, чтобы собрать данные с веб-страницы:

Присвойте URL-адрес тестовой страницы (в данном случае это mockturtle.html) переменной url.

Затем можно присвоить результат запроса этой страницы переменной page с помощью метода request.get(). Передайте URL-адрес страницы, который был присвоен переменной url, этому методу.

Читайте также:  Dell pp29l драйвера windows 7

Переменная page присвоена объекту Response.

Объект Response сообщает свойство status_code в квадратных скобках (в данном случае это 200). Этот атрибут можно вызвать явно:

Возвращаемый код 200 сообщает, что страница загружена успешно. Коды, начинающиеся с номера 2, обычно указывают на успешное выполнение операции, а коды, начинающиеся с 4 или 5, сообщают об ошибке. Вы можете узнать больше о кодах состояния HTTP по этой ссылке.

Чтобы работать с веб-данными, нужно получить доступ к текстовому содержимому веб-файлов. Прочитать содержимое ответа сервера можно с помощью page.text (или page.content, чтобы получить значение в байтах).

‘ \n\n \n \n \n\n Turtle
Soup \n \n\n \n

Turtle Soup

id=»first»>Beautiful Soup, so rich and green,
\n Waiting in a hot tureen!
\n Who for
such dainties would not stoop?
\n Soup of the evening, beautiful Soup!
\n Soup of
the evening, beautiful Soup!

Beau—ootiful
Soo—oop!
\n Beau—ootiful Soo—oop!
\n Soo—oop of the e—e—evening,
\n
Beautiful, beautiful Soup!

Beautiful Soup! Who cares
for fish,
\n Game or any other dish?
\n Who would not give all else for two
\n
Pennyworth only of Beautiful Soup?
\n Pennyworth only of beautiful Soup?

Beau—ootiful Soo—oop!
\n Beau—ootiful Soo—oop!
\n
Soo—oop of the e—e—evening,
\n Beautiful, beauti—FUL SOUP!
/>

Источник

Документация Beautiful Soup¶

Beautiful Soup — это библиотека Python для извлечения данных из файлов HTML и XML. Она работает с вашим любимым парсером, чтобы дать вам естественные способы навигации, поиска и изменения дерева разбора. Она обычно экономит программистам часы и дни работы.

Эти инструкции иллюстрируют все основные функции Beautiful Soup 4 на примерах. Я покажу вам, для чего нужна библиотека, как она работает, как ее использовать, как заставить ее делать то, что вы хотите, и что нужно делать, когда она не оправдывает ваши ожидания.

Примеры в этой документации работают одинаково на Python 2.7 и Python 3.2.

Возможно, вы ищете документацию для Beautiful Soup 3. Если это так, имейте в виду, что Beautiful Soup 3 больше не развивается, и что поддержка этой версии будет прекращена 31 декабря 2020 года или немногим позже. Если вы хотите узнать о различиях между Beautiful Soup 3 и Beautiful Soup 4, читайте раздел Перенос кода на BS4.

Эта документация переведена на другие языки пользователями Beautiful Soup:

Техническая поддержка¶

Быстрый старт¶

Вот HTML-документ, который я буду использовать в качестве примера в этой документации. Это фрагмент из «Алисы в стране чудес» :

Вот несколько простых способов навигации по этой структуре данных:

Одна из распространенных задач — извлечь все URL-адреса, найденные на странице в тегах :

Другая распространенная задача — извлечь весь текст со страницы:

Это похоже на то, что вам нужно? Если да, продолжайте читать.

Установка Beautiful Soup¶

Если вы используете последнюю версию Debian или Ubuntu Linux, вы можете установить Beautiful Soup с помощью системы управления пакетами:

$ apt-get install python-bs4 (для Python 2)

$ apt-get install python3-bs4 (для Python 3)

$ pip install beautifulsoup4

$ python setup.py install

Если ничего не помогает, лицензия на Beautiful Soup позволяет упаковать библиотеку целиком вместе с вашим приложением. Вы можете скачать tar-архив, скопировать из него в кодовую базу вашего приложения каталог bs4 и использовать Beautiful Soup, не устанавливая его вообще.

Я использую Python 2.7 и Python 3.2 для разработки Beautiful Soup, но библиотека должна работать и с более поздними версиями Python.

Проблемы после установки¶

Beautiful Soup упакован как код Python 2. Когда вы устанавливаете его для использования с Python 3, он автоматически конвертируется в код Python 3. Если вы не устанавливаете библиотеку в виде пакета, код не будет сконвертирован. Были также сообщения об установке неправильной версии на компьютерах с Windows.

Если выводится сообщение ImportError “No module named HTMLParser”, ваша проблема в том, что вы используете версию кода на Python 2, работая на Python 3.

Если выводится сообщение ImportError “No module named html.parser”, ваша проблема в том, что вы используете версию кода на Python 3, работая на Python 2.

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

$ python3 setup.py install

или запустить вручную Python-скрипт 2to3 в каталоге bs4 :

Установка парсера¶

Beautiful Soup поддерживает парсер HTML, включенный в стандартную библиотеку Python, а также ряд сторонних парсеров на Python. Одним из них является парсер lxml. В зависимости от ваших настроек, вы можете установить lxml с помощью одной из следующих команд:

$ apt-get install python-lxml

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

$ apt-get install python-html5lib

$ pip install html5lib

Эта таблица суммирует преимущества и недостатки каждого парсера:

Я рекомендую по возможности установить и использовать lxml для быстродействия. Если вы используете версию Python 2 более раннюю, чем 2.7.3, или версию Python 3 более раннюю, чем 3.2.2, необходимо установить lxml или html5lib, потому что встроенный в Python парсер HTML просто недостаточно хорош в старых версиях.

Обратите внимание, что если документ невалиден, различные парсеры будут генерировать дерево Beautiful Soup для этого документа по-разному. Ищите подробности в разделе Различия между парсерами.

Приготовление супа¶

Первым делом документ конвертируется в Unicode, а HTML-мнемоники конвертируются в символы Unicode:

Затем Beautiful Soup анализирует документ, используя лучший из доступных парсеров. Библиотека будет использовать HTML-парсер, если вы явно не укажете, что нужно использовать XML-парсер. (См. Разбор XML.)

Виды объектов¶

Объект Tag соответствует тегу XML или HTML в исходном документе:

У объекта Tag (далее «тег») много атрибутов и методов, и я расскажу о большинстве из них в разделах Навигация по дереву и Поиск по дереву. На данный момент наиболее важными особенностями тега являются его имя и атрибуты.

Если вы измените имя тега, это изменение будет отражено в любой HTML- разметке, созданной Beautiful Soup:

Атрибуты¶

У тега может быть любое количество атрибутов. Тег id = «boldest»> имеет атрибут “id”, значение которого равно “boldest”. Вы можете получить доступ к атрибутам тега, обращаясь с тегом как со словарем:

Вы можете добавлять, удалять и изменять атрибуты тега. Опять же, это делается путем обращения с тегом как со словарем:

Многозначные атрибуты¶

Если атрибут выглядит так, будто он имеет более одного значения, но это не многозначный атрибут, определенный какой-либо версией HTML- стандарта, Beautiful Soup оставит атрибут как есть:

Читайте также:  Antivirus for windows 10 бесплатно

Когда вы преобразовываете тег обратно в строку, несколько значений атрибута объединяются:

Вы можете отключить объединение, передав multi_valued_attributes = None в качестве именованного аргумента в конструктор BeautifulSoup :

Если вы разбираете документ как XML, многозначных атрибутов не будет:

Опять же, вы можете поменять настройку, используя аргумент multi_valued_attributes :

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

Строка соответствует фрагменту текста в теге. Beautiful Soup использует класс NavigableString для хранения этих фрагментов текста:

NavigableString похожа на строку Unicode в Python, не считая того, что она также поддерживает некоторые функции, описанные в разделах Навигация по дереву и Поиск по дереву. Вы можете конвертировать NavigableString в строку Unicode с помощью unicode() :

Вы не можете редактировать строку непосредственно, но вы можете заменить одну строку другой, используя replace_with() :

BeautifulSoup ¶

Комментарии и другие специфичные строки¶

Объект Comment — это просто особый тип NavigableString :

Но когда он появляется как часть HTML-документа, Comment отображается со специальным форматированием:

Вернемся к HTML-документу с фрагментом из «Алисы в стране чудес»:

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

Проход сверху вниз¶

Теги могут содержать строки и другие теги. Эти элементы являются дочерними ( children ) для тега. Beautiful Soup предоставляет множество различных атрибутов для навигации и перебора дочерних элементов.

Обратите внимание, что строки Beautiful Soup не поддерживают ни один из этих атрибутов, потому что строка не может иметь дочерних элементов.

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

Использование имени тега в качестве атрибута даст вам только первый тег с таким именем:

Источник

As BeautifulSoup is not a standard python library, we need to install it first. We are going to install the BeautifulSoup 4 library (also known as BS4), which is the latest one.

To isolate our working environment so as not to disturb the existing setup, let us first create a virtual environment.

Creating a virtual environment (optional)

A virtual environment allows us to create an isolated working copy of python for a specific project without affecting the outside setup.

Best way to install any python package machine is using pip, however, if pip is not installed already (you can check it using – “pip –version” in your command or shell prompt), you can install by giving below command −

Linux environment

Windows environment

To install pip in windows, do the following −

Download the get-pip.py from https://bootstrap.pypa.io/get-pip.py or from the github to your computer.

Open the command prompt and navigate to the folder containing get-pip.py file.

Run the following command −

That’s it, pip is now installed in your windows machine.

You can verify your pip installed by running below command −

Installing virtual environment

Run the below command in your command prompt −

After running, you will see the below screenshot −

Below command will create a virtual environment (“myEnv”) in your current directory −

Screenshot

To activate your virtual environment, run the following command −

In the above screenshot, you can see we have “myEnv” as prefix which tells us that we are under virtual environment “myEnv”.

To come out of virtual environment, run deactivate.

As our virtual environment is ready, now let us install beautifulsoup.

Installing BeautifulSoup

As BeautifulSoup is not a standard library, we need to install it. We are going to use the BeautifulSoup 4 package (known as bs4).

Linux Machine

To install bs4 on Debian or Ubuntu linux using system package manager, run the below command −

You can install bs4 using easy_install or pip (in case you find problem in installing using system packager).

(You may need to use easy_install3 or pip3 respectively if you’re using python3)

Windows Machine

To install beautifulsoup4 in windows is very simple, especially if you have pip already installed.

So now beautifulsoup4 is installed in our machine. Let us talk about some problems encountered after installation.

Problems after installation

On windows machine you might encounter, wrong version being installed error mainly through −

error: ImportError “No module named HTMLParser”, then you must be running python 2 version of the code under Python 3.

error: ImportError “No module named html.parser” error, then you must be running Python 3 version of the code under Python 2.

Best way to get out of above two situations is to re-install the BeautifulSoup again, completely removing existing installation.

If you get the SyntaxError “Invalid syntax” on the line ROOT_TAG_NAME = u’[document]’, then you need to convert the python 2 code to python 3, just by either installing the package −

or by manually running python’s 2 to 3 conversion script on the bs4 directory −

Installing a Parser

By default, Beautiful Soup supports the HTML parser included in Python’s standard library, however it also supports many external third party python parsers like lxml parser or html5lib parser.

To install lxml or html5lib parser, use the command −

Linux Machine

Windows Machine

Generally, users use lxml for speed and it is recommended to use lxml or html5lib parser if you are using older version of python 2 (before 2.7.3 version) or python 3 (before 3.2.2) as python’s built-in HTML parser is not very good in handling older version.

Running Beautiful Soup

It is time to test our Beautiful Soup package in one of the html pages (taking web page – https://www.tutorialspoint.com/index.htm, you can choose any-other web page you want) and extract some information from it.

In the below code, we are trying to extract the title from the webpage −

Output

One common task is to extract all the URLs within a webpage. For that we just need to add the below line of code −

Output

Similarly, we can extract useful information using beautifulsoup4.

Now let us understand more about “soup” in above example.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector