是否可以提取html文档中<p>标记之间的文本?

时间:2019-10-29 14:59:53

标签: python beautifulsoup

我正在使用BeautifulSoup从html文件中提取内容。 我有数千个提取的html文件,并希望提取所有文件中p标记之间的内容。 这是相关代码:

for line in text:
    soup = bs(line, 'html.parser')
    autor = soup.find_all('p').text
    s = autor.replace('\\n', '')
    l.append(s)

我想使用find_all()。text提取所有p标签之间的文本,但是出现此错误:

ResultSet对象没有属性“文本”。您可能正在将项目列表像单个项目一样对待。当您打算致电find()时,您是否致电过find_all()?

如果我仅使用find()。text

autor = soup.find('p').text

我只是得到每个文件的第一个p标签。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

用新行自然分隔的文本:

paragraph_text = '\n\n'.join(p.text for p in soup.find_all('p'))

或者,例如,如果您想用空格连接段落:

paragraph_text = ' '.join(p.text for p in soup.find_all('p'))

<p>中所有文本的列表:

paragraphs = [p.text for p in soup.find_all('p')]