我一直在使用 Python 的 Beautiful Soup 库来抓取页面,但是我遇到了一些限制。我一直在抓取不同的(通常是新闻)网站,并且提前不知道网站的轮廓是什么样的。理想情况下,我想要一个只从网站上抓取正文的功能(而不是链接到其他文章的标题)。我注意到文本通常位于<p>
网站的标签内,但并非总是如此,所以我创建了这个函数:
def get_text(html):
soup = BeautifulSoup(html)
text = ""
for node in soup.findAll('p'):
inner_node = node.findAll(text=True)
for inner_text in inner_node:
text += ' ' + inner_text
return text
但是,它并非一直都有效,我经常会错过项目。我会假设必须存在已经制作的东西,我可以使用这些东西和/或在抓取文本时遵循一些最佳实践。感谢您对此事的指导。