使用Python和Beautiful Soup仅从页面上的div标签中提取文本

时间:2016-11-24 14:39:05

标签: python html css web-scraping beautifulsoup

我正在尝试将一个静态新闻网站作为一个项目,我正在使用美丽的汤,但我被困在一个包含div标签文本的页面,这里的文字意味着新闻文章

该网站的链接是 http://economictimes.indiatimes.com/magazines/panache/smoking-aces-chef-irshad-qureshis-interesting-stories-related-to-celebrities/articleshow/48712333.cms

新闻文字包含以下格式

<html>
<body>
<div class="normal" id="foo">
      " Many "
 <a href ='/some link' target = 'blank'>Bollywood</a>
 " stars today  are avowed foodies "
 <a href = 'link2'>Ranbir Kapoor</a>
 " Alia Bhat "
</div>
</body>
</html>

我想要的文字是&#34; 今天许多宝莱坞明星都发誓美食家。 Alia Bhat &#34;

这就是我想要的所有文本无论在哪里。

我能够使用find_all(&#39; div&#39;,&#39; normal&#39;)到达div,但在此之后如何从页面检索所有文本元素。

如果您想了解更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

要从beautifulsoup中的某个元素中提取text,您可以使用.text属性:

>>> t  = """<div class="normal" id="foo">  Many  <a href ='/some link' target = 'blank'>Bollywood</a>  stars today  are avowed foodies  <a href = 'link2'>Ranbir Kapoor</a>  Alia Bhat  </div>"""
>>> bs = BeautifulSoup(t)
>>> print(bs.find('div').text)
  Many  Bollywood  stars today  are avowed foodies  Ranbir Kapoor  Alia Bhat