首页 > 解决方案 > 使用 BeautifulSoup 从 HTML 中排除几个元素

问题描述

我想在网页中获取一些名称,以便稍后在代码中使用它们。

content = requests.get("http://serpadres.com/bebe/los-200-nombres-latinos-mas-populares-de-los-ultimos-tiempos/52175/").content
soup = BeautifulSoup(content, features="html.parser")
for tag in soup.find_all("br"):

    print("{0}: {1}".format(tag.name, tag.text))

我试过这个,它确实打印了所有的名字,但也打印了 br 标签,结果是:

br: 
br: 
br: 
br: 
br: 
br: 
br: 
br: 
VERY LONG LIST OF NAMES
br: 
br: 
br: 
br: 
br: 
br: 
br: 
br: 
br: 
br: 

还有很多很多 br:。如何排除这些并将名称转换为字符串?

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


您可以通过添加以下行来检查它是名称还是空格:

if tag.get_text() != '':

代码将如下所示:

from bs4 import BeautifulSoup
from pip._vendor import requests

mylist = []
content = requests.get("http://serpadres.com/bebe/los-200-nombres-latinos-mas-populares-de-los-ultimos-tiempos/52175/").content
soup = BeautifulSoup(content, features="html.parser")
for tag in soup.find_all('br'):
    if tag.get_text() != '':
        print(tag.get_text())

推荐阅读