Вы, вероятно, просто хотите выполнить некоторое регулярное регулярное выражение для HTML, прежде чем выбросить его в BeautifulSoup.
Еще проще, если в коде нет сущностей SGML (&...;
), html=html.replace('&','&')
добьется цели.
В противном случае попробуйте это:
x ="<html><h1>Fish & Chips & Gravy</h1><p>Fish & Chips & Gravy</p>"
import re
q=re.sub(r'&([^a-zA-Z#])',r'&\1',x)
print q
По существу, регулярное выражение ищет &
, за которым не следуют буквенно-цифровые или # символы.Он не будет иметь дело с амперсандами в конце строк, но это, вероятно, поправимо.