Привет, кодер,
В этой статье я представлю короткий список с фрагментами кода, полезными для извлечения информации с живого веб-сайта. Код записан в Python на вершине BeautifulSoup HTML SAINING библиотека.
Благодарю вас! Содержание предоставлено Appseed – App Generator Анкет
Что такое HTML -анализатор
Согласно Википедии, Расположение или синтаксический анализ – это процесс анализа ряда символов, либо на естественном языке, либо на компьютерных языках, в соответствии с правилами формальной грамматики. Значение HTML SAINING Применяется здесь, в основном, ползание кода HTML и извлечение, обработка соответствующей информации, такой как заголовок головы, активы страницы, основные разделы.
Настройка окружающей среды
Чтобы выполнить пример кода, нам нужна среда Python и несколько полезных зависимостей:
$ pip install ipython # the console where we execute the code $ pip install requests # a library to pull the entire HTML page $ pip install BeautifulSoup # the real magic is here
Если все пойдет хорошо, мы можем начать кодирование. Пожалуйста, введите ipython
Чтобы начать интерактивную консоль Python:
# import libraries import requests from bs4 import BeautifulSoup as bs # define the URL to crawl & parse # feel free to change this URL with your own app app_url = 'https://flask-bulma-css.appseed.us/' # crawling the page. This might take a few seconds page = requests.get( app_url ) # to check the crawl status, just type: page# all good # to print the page contents type: page.content
На этом этапе у нас есть содержание страницы, давайте внедрим HTML в BeautifulSoup и получим некоторую информацию с удаленной страницы.
soup = bs(page.content, 'html.parser') # print the entire page head soup.head # print only the title soup.head.titleFlask Bulma CSS - BulmaPlay Open-Source App
Чтобы проверить точность результата, мы можем проверить источник страницы.
Куда пойти отсюда?
Используя библиотеку BS, мы можем легко манипулировать DOM. Например, давайте распечатаем файлы JavaScript, используемые файлом HTML, используя всего несколько строк кода:
# the code for script in soup.body.find_all('script', recursive=False): print(' Js = ' + script['src']) # the output Js = /static/assets/js/jquery.min.js Js = /static/assets/js/jquery.lazy.min.js Js = /static/assets/js/slick.min.js Js = /static/assets/js/scrollreveal.min.js Js = /static/assets/js/jquery.waypoints.min.js Js = /static/assets/js/jquery.waypoints-sticky.min.js Js = /static/assets/js/jquery.counterup.min.js Js = https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js Js = /static/assets/js/app.js
Давайте напечатаем содержание app.js
файл:
# app_url is initialized a few line above: # app_url = 'https://flask-bulma-css.appseed.us/' app_js = requests.get(app_url + '/static/assets/js/app.js') # to check the status, just type the name of the object app_js# all good, let's print the content of the remote file app_js.content # some unminified js code will be listed here.
Давайте напечатаем элементы уровня первого из тела страницы:
# the code for elem in soup.body.children: if elem.name: # we need this check, some elements don't have name print( ' -> elem ' + elem.name ) # the output -> elem div -> elem section -> elem section -> elem section -> elem section -> elem section -> elem section -> elem footer -> elem div -> elem div -> elem div -> elem script -> elem script -> elem script -> elem script -> elem script -> elem script -> elem script -> elem script -> elem script
Давайте напечатаем нижний колонтитул:
soup.footer # to have a nice print of elements, we can use BS prettify() helper # using prettify(), the output is nicely indented print(soup.footer.prettify()) # the output
И последний фрагмент кода, давайте распечатаем якоря, упомянутые в разделе нижнего колонтитула:
# the code for elem in soup.body.footer.find_all('a'): print(' footer href = ' + elem['href']) # the output footer href = https://bulma.io footer href = https://github.com/app-generator/flask-bulma-css footer href = https://appseed.us/apps/bulma-css?flask-bulma-css footer href = https://blog.appseed.us/tag/bulma-css footer href = https://absurd.design/ footer href = https://github.com/cssninjaStudio/fresh
Статьи по Теме
- Инструменты разработчика – HTML -анализатор с открытым исходным кодом – Связанная статья
- HTML Parser – Extract HTML Информация с легкостью – Несколько практических фрагментов кода для извлечения и обработки HTML
Другие ресурсы анализа
- HTML Parser – Как использовать Python BS4 для работы меньше
- HTML Parser – Используется генератором приложений приложений для анализа плоской HTML
- BeautifulSoup Html Parser документация
- HTML -анализатор источников – Официальный общественный репозиторий
- HTML Parser Предоставлено Appseed
- HTML Parser – преобразовать HTML в компоненты Jinja2 и PHP – Связанная статья в блоге
- Видео -презентация HTML SAINING и извлечение компонентов
Полезный? Ама в комментариях. Спасибо и счастливы HTML SAINING !
Оригинал: “https://dev.to/sm0ke/html-parser-learn-by-coding-4l1f”