Извлечение подкласса из класса с помощью Beautifulsoup - PullRequest
0 голосов
/ 28 мая 2018

Я работаю со следующим фрагментом HTML со страницы на Goodreads с использованием Python 3.6.3:

<div class="quoteText">
      “Don't cry because it's over, smile because it happened.”
  <br/>  ―
    <a class="authorOrTitle" href="/author/show/61105.Dr_Seuss">Dr. Seuss</a>
</div>, <div class="quoteText">

Я использовал BeautifulSoup, чтобы очистить HTML и изолировать только класс "quoteText", видимый вфрагмент выше.Теперь я хочу сохранить цитату и имя автора в виде отдельных строк.Я смог получить имя автора, используя

(quote_tag.find(class_="quoteText")).text

Я не уверен, как сделать то же самое для цитаты.Я предполагаю, что мне нужен способ удалить подкласс из моего вывода и попытался использовать метод extract.

quote.extract(class_="authorOrTitle")

, но я получил сообщение о том, что extract получил неожиданный аргумент ключевого слова 'class_'способ сделать то, что я пытаюсь сделать?

Это мой первый пост здесь, поэтому я прошу прощения, если пост не соответствует определенной специфике / форматированию / другим стандартам.

1 Ответ

0 голосов
/ 28 мая 2018

PageElement.extract () удаляет тег или строку из дерева.Возвращает тег или строку, которые были извлечены

from bs4 import BeautifulSoup
a='''<div class="quoteText">
      “Don't cry because it's over, smile because it happened.”
  <br/>  -
    <a class="authorOrTitle" href="/author/show/61105.Dr_Seuss">Dr. Seuss</a>
</div>, <div class="quoteText">'''
s=BeautifulSoup(a,'lxml')
s.find(class_="authorOrTitle").extract()
print(s.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...