2017-02-12 8 views
0

Я использую Beautiful Soup 4, чтобы очистить текст от веб-страницы в бою Discord.Сложность с find_all в BS4

@commands.command(hidden=True) 
async def roster(self): 
"""A script using BS4.""" 

url = "http://www.clandestine.pw/roster.html" 
async with aiohttp.get(url) as response: 
    soupObject = BeautifulSoup(await response.text(), "html.parser") 
try: 
    txt = soupObject.find("font", attrs={'size': '4'}).get_text() 
    await self.bot.say(txt) 
except: 
    await self.bot.say("Not found!") 

Выполнение команды, это возвращает «ThaIIen» (как следует). Если я просто изменил find на find_all, он возвращает «Не найден!». Зачем? Не следует ли возвращать каждый текст шрифта 4 в документе?

ответ

1

find_all("font", attrs={'size': '4'}) вернется:

[font_tag1, font_tag2, font_tag3 ....] 

find("font", attrs={'size': '4'}) вернется:

font_tag1 

.get_text() является метод объекта тега, а не список объект, поэтому, когда вы запускаете find_all().get_text() возбудит Exception