Может быть (должен) лучший путь к этому, но вы можете просто сделать str(s)
. Вы пытались найти совпадение в нестроковом объекте:
from bs4 import BeautifulSoup
fp = open("file.html", "rb")
soup = BeautifulSoup(fp,"html5lib")
allList = soup.find_all(True)
matching = [s for s in allList if 'size="5"' in str(s)]
Не уверен, что это именно то, что вам нужно, но лучшим способом может быть:
allList = soup.find_all("font", {"size": "5"}) # you already have the matching elements here