使用beautifulsoup从类中提取子类

时间:2018-05-28 06:43:22

标签: python web-scraping beautifulsoup

我正在使用Python 3.6.3在Goodreads页面上使用以下HTML代码段:

<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

我不知道如何为报价做同样的事情。我猜我需要一种方法从输出中删除子类并尝试使用提取方法。

quote.extract(class_="authorOrTitle")

但是我收到一条错误消息,提到了一个意外的关键字参数'class_' 还有其他办法可以做我想做的事吗?

这是我第一次在这里发帖,所以如果帖子不符合特定的特殊性/格式/其他标准,我会道歉。

1 个答案:

答案 0 :(得分:1)

  

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)