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

Qwarzenegger цитаты с красивыми

Этот пост будет очень коротким введением в HTML Parsing с Booksoup. Я в настоящее время в … Помечено Python, Twitch, учебник.

Этот пост будет очень коротким введением в HTML Parsing с Booksoup.

В настоящее время я в настоящее время в процессе внедрения бота чата для подергивания в Python, который слушает различные команды. После некоторого мышления я решил заставить его ответить с цитатами Schwarzenegger, потому что … почему бы не?

Сама реализация не будет проблемой, поскольку я сделал подобные вещи раньше с ботом. Большой вопрос был, куда получить цитаты. Раньше мне повезло получить все свои цитаты от API, которые заставляют его смех легко использовать их с ботом.

Поиск Schwarzenegger Quote Consific Apis не имеет никаких фруктов. Ну, чтобы быть точным, я нашел репозиторий на Github, если кто-то реализовал API с цитатами Schwarzenegger, но казалось не в сети.

Счастливчик за меня, он содержал список цитат и фильмы, которые они были. У него только один маленький недостаток … Это выглядело так:

"
\"It's showtime!\"
-- The Running Man (1987)
", "
\"Alright everyone, chill.\"
-- Batman & Robin (1997)
", "
\"Allow me to break the ice.\"
-- Batman & Robin (1997)
", "
\"I need your clothes, your boots, and your motorcycle.\"
-- Terminator 2: Judgment Day (1991)
"

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

Потому что в моем отчаянии я вспомнил подобную проблему на работе, которую мой коллега решается в Python с использованием пакета Beautifulsoup Отказ

Установка была так же просто, как вы используете пакеты Python.

pip install BeautifulSoup4

Следующие шаги были так же просто

from bs4 import BeautifulSoup

example = "
\"It's showtime!\"
-- The Running Man (1987)
" soup = BeautifulSoup(example, "html.parser")

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

>>>soup.get_text()
'"It\'s showtime!"-- The Running Man (1987)'

Чтобы найти отдельных тегов можно просто использовать:

>>>soup.find("div", class_="quote").text
'"It\'s showtime!"'
>>>soup.find("div", class_="movie-title").text
'-- The Running Man (1987)'

Если мы хотели список всех тегов, то следующее было бы установочным решением:

>>>soup.currentTag()
[
"It's showtime!"
,
-- The Running Man (1987)
]

Мое окончательное решение – в том числе некоторые убирать – выглядело так:

quotes = []
for entry in unparsed_quotes:
    soup = BeautifulSoup(entry.replace("
", "\n"), "html.parser") quotes.append(soup.find("div", class_="quote").text + "\nfrom: " + soup.find("div", class_="movie-title").text.replace("-- ", ""))

Даже после этого я понял, какой мощный инструмент Beautifulsoup Есть и я даже не поцарапал поверхность. Это было недолго, пока мне не нужен эти функции следующего уровня. Но это для другой статьи.

На данный момент единственное, что еще предстоит сказать, это:

>>>soup = BeautifulSoup(example, "html.parser")
>>>soup.text
'"I\'ll be back."-- Terminator 2: Judgment Day (1991)'

Оригинал: “https://dev.to/topjer/schwarzenegger-quotes-with-beautifulsoup-4kde”