Например, если вы хотите получать регулярные обновления ваших любимых продуктов для предложений скидок или вы хотите автоматизировать процесс загрузки эпизодов вашего любимого сезона один за другим, а на веб-сайте нет API для этого, тогда единственный выбор ты остаешься с веб-парсингом.Веб-скрапинг может быть незаконным на некоторых веб-сайтах, в зависимости от того, позволяет ли это веб-сайт. На веб-сайтах используются «роботы.txt »для явного определения URL-адресов, удаление которых запрещено. Вы можете проверить, позволяет ли это веб-сайт, добавив «robots.txt »с доменным именем веб-сайта. Например, https: // www.Google.com / robots.текст
В этой статье мы будем использовать Python для парсинга, потому что его очень легко настроить и использовать. Он имеет множество встроенных и сторонних библиотек, которые можно использовать для сбора и систематизации данных. Мы будем использовать две библиотеки Python «urllib» для получения веб-страницы и «BeautifulSoup» для анализа веб-страницы для применения операций программирования.
Как работает веб-парсинг?
Отправляем запрос на веб-страницу, откуда вы хотите очистить данные. Сайт ответит на запрос HTML-содержимым страницы. Затем мы можем проанализировать эту веб-страницу в BeautifulSoup для дальнейшей обработки. Чтобы получить веб-страницу, мы будем использовать библиотеку urllib в Python.
Urllib загрузит содержимое веб-страницы в формате HTML. Мы не можем применять строковые операции к этой HTML-странице для извлечения содержимого и дальнейшей обработки. Мы будем использовать библиотеку Python BeautifulSoup, которая будет анализировать контент и извлекать интересные данные.
Парсинг статей из Linuxhint.ком
Теперь, когда у нас есть представление о том, как работает парсинг веб-страниц, давайте попрактикуемся. Мы попробуем очистить заголовки статей и ссылки из Linuxhint.ком. Так что откройте https: // linuxhint.com / в вашем браузере.
Теперь нажмите CRTL + U, чтобы просмотреть исходный HTML-код веб-страницы.
Скопируйте исходный код и перейдите по адресу https: // htmlformatter.com / для уточнения кода. После предварительной настройки кода его легко изучить и найти интересную информацию.
Теперь снова скопируйте отформатированный код и вставьте его в свой любимый текстовый редактор, например, атом, возвышенный текст и т. Д. Теперь поскребем интересную информацию с помощью Python. Введите следующее
// Устанавливаем красивую суповую библиотеку, приходит urllibпредустановлен в Python
ubuntu @ ubuntu: ~ $ sudo pip3 установить bs4
убунту @ убунту: ~ $ python3
Python 3.7.3 (по умолчанию, 7 октября 2019 г., 12:56:13)
[GCC 8.3.0] в Linux
Введите «помощь», «авторские права», «кредиты» или «лицензия» для получения дополнительной информации.
// Импортируем urllib>>> импортировать urllib.запрос
// Импортируем BeautifulSoup
>>> из bs4 импортировать BeautifulSoup
// Введите URL-адрес, который хотите получить
>>> my_url = 'https: // linuxhint.com / '
// Запрашиваем URL-адрес веб-страницы с помощью команды urlopen
>>> client = urllib.запрос.urlopen (my_url)
// Сохраняем HTML-страницу в переменной «html_page»
>>> html_page = клиент.читать()
// Закрываем URL-соединение после загрузки веб-страницы
>>> клиент.Закрыть()
// анализируем HTML-страницу в BeautifulSoup для очистки
>>> page_soup = BeautifulSoup (html_page, "html.парсер ")
Теперь давайте посмотрим на исходный код HTML, который мы только что скопировали и вставили, чтобы найти то, что нас интересует.
Вы можете видеть, что первая статья, указанная на Linuxhint.com называется «74 примера операторов Bash», его можно найти в исходном коде. Он заключен между тегами заголовка, а его код
title = "74 примера операторов Bash"> 74 оператора Bash
Примеры
Один и тот же код повторяется снова и снова с изменением только заголовков статей и ссылок. В следующей статье есть следующий HTML-код
title = "Как настроить кеш Varnish в Ubuntu 18.04 ">
Как настроить кеш Varnish в Ubuntu 18.04
Вы можете видеть, что все статьи, включая эти две, заключены в один и тот же "
»И используйте тот же класс« entry-title ». Мы можем использовать функцию «findAll» в библиотеке Beautiful Soup, чтобы найти и перечислить все «»Имеющий класс« запись-заглавие ». Введите в консоли Python следующее // Эта команда найдет все «»Элементы тега, имеющие класс с именем
«Запись-заголовок». Результат будет сохранен в массиве.
>>> article = page_soup.findAll ("h2" ,
"class": "entry-title")
// Количество статей, найденных на главной странице Linuxhint.ком
>>> len (статьи)
102
// Сначала извлечено «»Элемент тега, содержащий название статьи и ссылку
>>> статьи [0]
title = "74 примера операторов Bash">
74 Примеры операторов Bash
// Извлеченная секунда “»Элемент тега, содержащий название статьи и ссылку
>>> статьи [1]
title = "Как настроить кеш Varnish в Ubuntu 18.04 ">
Как настроить кеш Varnish в Ubuntu 18.04
// Отображение только текста в тегах HTML с использованием текстовой функции
>>> статьи [1].текст
'Как настроить кеш Varnish в Ubuntu 18.04 '
»Элементы тега, имеющие класс с именем
«Запись-заголовок». Результат будет сохранен в массиве.
>>> article = page_soup.findAll ("h2" ,
"class": "entry-title")
// Количество статей, найденных на главной странице Linuxhint.ком
>>> len (статьи)
102
// Сначала извлечено «»Элемент тега, содержащий название статьи и ссылку
>>> статьи [0]
title = "74 примера операторов Bash">
74 Примеры операторов Bash
// Извлеченная секунда “»Элемент тега, содержащий название статьи и ссылку
>>> статьи [1]
title = "Как настроить кеш Varnish в Ubuntu 18.04 ">
Как настроить кеш Varnish в Ubuntu 18.04
// Отображение только текста в тегах HTML с использованием текстовой функции
>>> статьи [1].текст
'Как настроить кеш Varnish в Ubuntu 18.04 '
>>> статьи [0]
title = "74 примера операторов Bash">
74 Примеры операторов Bash
// Извлеченная секунда “
»Элемент тега, содержащий название статьи и ссылку
>>> статьи [1]
title = "Как настроить кеш Varnish в Ubuntu 18.04 ">
Как настроить кеш Varnish в Ubuntu 18.04
// Отображение только текста в тегах HTML с использованием текстовой функции
>>> статьи [1].текст
'Как настроить кеш Varnish в Ubuntu 18.04 '
title = "Как настроить кеш Varnish в Ubuntu 18.04 ">
Как настроить кеш Varnish в Ubuntu 18.04
Теперь, когда у нас есть список всех 102 HTML «
»Элементы тега, содержащие ссылку на статью и заголовок статьи. Мы можем извлекать как ссылки на статьи, так и заголовки. Чтобы извлечь ссылки из «», Мы можем использовать следующий код // Следующий код извлечет ссылку из первого элемент тега
>>> по ссылке в статьях [0].find_all ('a', href = True):
… Печать (ссылка ['href'])
…
https: // linuxhint.ru / bash_operator_examples /
Теперь мы можем написать цикл for, который проходит через каждые «
»В списке« статей »и извлеките ссылку на статью и заголовок. >>> для i в диапазоне (0,10):
… Печать (статьи [i].текст)
… Для ссылки в статьях [i].find_all ('a', href = True):
… Печать (ссылка ['href'] + "\ n")
…
74 Примеры операторов Bash
https: // linuxhint.ru / bash_operator_examples /
Как настроить кеш Varnish в Ubuntu 18.04
https: // linuxhint.ru / varnish_cache_ubuntu_1804 /
PineTime: умные часы, совместимые с Linux
https: // linuxhint.com / pinetime_linux_smartwatch /
10 лучших дешевых ноутбуков с Linux, которые стоит купить с ограниченным бюджетом
https: // linuxhint.ru / best_cheap_linux_laptops /
HD Remastered Games для Linux, никогда не выпускавшиеся для Linux…
https: // linuxhint.com / hd_remastered_games_linux /
Приложения для записи экрана с частотой 60 кадров в секунду для Linux
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Примеры операторов Bash
https: // linuxhint.ru / bash_operator_examples /
… Отрезать…
Точно так же вы сохраняете эти результаты в файл JSON или CSV.
Заключение
Ваши ежедневные задачи - это не только управление файлами или выполнение системных команд. Вы также можете автоматизировать задачи, связанные с Интернетом, такие как автоматизация загрузки файлов или извлечение данных, очищая Интернет с помощью Python. Эта статья была ограничена только простым извлечением данных, но вы можете автоматизировать огромные задачи, используя urllib и BeautifulSoup.
>>> по ссылке в статьях [0].find_all ('a', href = True):
… Печать (ссылка ['href'])
…
https: // linuxhint.ru / bash_operator_examples /
… Печать (статьи [i].текст)
… Для ссылки в статьях [i].find_all ('a', href = True):
… Печать (ссылка ['href'] + "\ n")
…
74 Примеры операторов Bash
https: // linuxhint.ru / bash_operator_examples /
Как настроить кеш Varnish в Ubuntu 18.04
https: // linuxhint.ru / varnish_cache_ubuntu_1804 /
PineTime: умные часы, совместимые с Linux
https: // linuxhint.com / pinetime_linux_smartwatch /
10 лучших дешевых ноутбуков с Linux, которые стоит купить с ограниченным бюджетом
https: // linuxhint.ru / best_cheap_linux_laptops /
HD Remastered Games для Linux, никогда не выпускавшиеся для Linux…
https: // linuxhint.com / hd_remastered_games_linux /
Приложения для записи экрана с частотой 60 кадров в секунду для Linux
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Примеры операторов Bash
https: // linuxhint.ru / bash_operator_examples /
… Отрезать…