Рубрики
Без рубрики

HTML Parser – извлечь информацию с живого веб -сайта

Несколько практических HTML -обработчиков с использованием библиотеки Python / BeautifulSoup. Tagged with HtmlParser, Tools, Python, Appseed.

Привет, кодер,

В этой статье я представлю короткий список с фрагментами кода, полезными для извлечения информации с живого веб-сайта. Код записан в 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.title
Flask 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 SAINING !

Оригинал: “https://dev.to/sm0ke/html-parser-learn-by-coding-4l1f”