Проверьте мои книги на Amazon в https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
Подписаться на мой список электронной почты сейчас http://jauyeung.net/subscribe/
Мы можем получить данные с веб-страниц с красивым супом.
Это позволяет нам разобрать DOM и извлекать данные, которые мы хотим.
В этой статье мы посмотрим, как царапать документы HTML с красивым супом.
Начиная
Мы начинаем работать:
pip install beautifulsoup
Тогда мы можем написать:
from bs4 import BeautifulSoup html_doc = """The Dormouse's story The Dormouse's story
Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.
...
""" soup = BeautifulSoup(html_doc, 'html.parser') print(soup.prettify())
Чтобы добавить HTML-строку и разбирать его с помощью Beautifulsoup
класс.
Тогда мы можем распечатать проанализированный документ в последней строке.
Получить ссылки и текст
Мы можем получить ссылки из строки HTML с помощью Find_all
Метод:
from bs4 import BeautifulSoup html_doc = """The Dormouse's story The Dormouse's story
Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.
...
""" soup = BeautifulSoup(html_doc, 'html.parser') for link in soup.find_all('a'): print(link.get('href'))
Мы просто проходим в селекторе для элементов, которые мы хотим получить.
Кроме того, мы можем получить весь текст со страницы с get_text ()
:
from bs4 import BeautifulSoup html_doc = """The Dormouse's story The Dormouse's story
Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.
...
""" soup = BeautifulSoup(html_doc, 'html.parser') print(soup.get_text())
Разбор внешнего документа
Мы можем разобрать внешний документ, открыв его с помощью открыть
:
from bs4 import BeautifulSoup with open("index.html") as fp: soup = BeautifulSoup(fp, 'html.parser') print(soup.prettify())
Виды предметов
Мы можем получить несколько видов объектов с красивым супом.
Они включают Тег
, Навигалинг
, Beautifulsoup
и Комментарий
Отказ
Ярлык
А Тег
Соответствует тегу XML или HTML в исходном документе.
Например, мы можем написать:
from bs4 import BeautifulSoup soup = BeautifulSoup('Extremely bold', 'html.parser') tag = soup.b print(type(tag))
чтобы получить B
Тег из строки HTML.
Тогда мы получаем:
напечатано из последней строки.
Имя
Мы можем получить имя тега:
from bs4 import BeautifulSoup soup = BeautifulSoup('Extremely bold', 'html.parser') tag = soup.b print(tag.name)
Тогда мы видим B
напечатано.
Атрибуты
Мы можем получить атрибуты из возвращенного словаря:
from bs4 import BeautifulSoup tag = BeautifulSoup('bold', 'html.parser').b print(tag['id'])
Мы получаем B
элемент.
Тогда мы получаем ID
значение из возвращенного словаря.
Заключение
Мы можем получить анализ HTML и XML и получить различные элементы, текст и атрибуты легко с красивым супом.
Оригинал: “https://dev.to/aumayeung/getting-started-with-web-scraping-with-beautiful-soup-1kfo”