【问题标题】:Extracting an articles text using BeautifulSoup使用 BeautifulSoup 提取文章文本
【发布时间】:2017-04-18 17:20:36
【问题描述】:

我正在尝试使用 BeautifulSoup 从一篇文章中提取所有文本。我可以将文章的所有文本与之前和之后的 HTML 分开,但我不知道如何将文本与所有嵌入的 HTML 代码分开。 这是我的代码:

from bs4 import BeautifulSoup
import requests
url = 'http://www.prnewswire.com/news-releases/tata-consultancy-services-reports-broad-based-growth-across-markets-marks-steady-fy17-300440934.html'
r = requests.get(url)
html = r.text
soup = BeautifulSoup(html, 'lxml')
links = soup.find_all('p', {'itemprop': 'articleBody'})

链接包含所有文章文本,但分为几个部分。

任何关于如何从散布在文章文本中的 HTML 中分离和组合所有文章文本段的想法将不胜感激。

【问题讨论】:

  • 我看到links 是一个空列表,你确定它是'item_prop' 而不是'itemprop'
  • 您好,感谢您指出我的错字。它应该是 itemprop 而不是 item_prop。正确的链接语句是:links = soup.find_all('p', {'itemprop': 'articleBody'})

标签: python html parsing beautifulsoup


【解决方案1】:

您可以使用get_text 方法返回标签下的所有文本:

links = [e.get_text() for e in soup.find_all('p', {'itemprop': 'articleBody'})]

然后随心所欲地加入它:

article = '\n'.join(links)
print len(article)

会输出

$ 6485

【讨论】:

  • 非常感谢。这完全回答了我的问题。
猜你喜欢
  • 2021-10-14
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
相关资源
最近更新 更多