Я извлекаю текст некоторых тегов с веб-страниц и записываю в html-файл в байтах, поскольку я кодирую данные перед записью.
Код:
link = 'https://en.wikipedia.org/wiki/Training,_validation,_and_test_sets#training_set'
req = urllib.request.Request(link, headers={'User-Agent': 'Mozilla/5.0'})
url = urllib.request.urlopen(req).read()
soup = BeautifulSoup(url.decode("utf-8", "ignore"), 'lxml')
with open(filepath, "wb") as oFile:
for cls in soup.find_all(["p", "table", "ol", "ul", "h1", "h2"]):
try:
oFile.write(cls.prettify(encode_name))
except Exception as e:
print (e)
continue
oFile.close()
Теперь эта веб-страница содержит определенные символы, такие как –
вместо -
и “ ”
вместо ""
, которые не могут быть закодированы utf-8
или cp1252
Поэтому я хотел бы найти эти символы и заменить на вышеупомянутые подходящие символы, но я не уверен, как это сделать здесь.
Я пытался преобразовать cls
в string
, чтобы попробовать replace()
, но выдает ошибку, что строковый объект не имеет атрибута с именем prettify()