проблема с кодировкой при парсинге
from bs4 import BeautifulSoup
import requests
url = 'https://begoodtool.com/home/uk'
headers = {
'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 OPR/118.0.0.0'
}
reg = requests.get(url, headers=headers)
src = reg.text
with open('parser_03.html', 'w', encoding='utf-8') as file:
file.write(src)
print(src)
проблема выводит краказябку при том что сайт на utf-8 а прикол в том, если взять краказябку и пробить на кодировку то пишет кодировка gb18030
import chardet
with open('parser_03.html', 'rb') as file:
dytes = file.read()
detect = chardet.detect(dytes)
print(detect)
после делаю вывод
with open('parser_03.html', newline='',encoding='gb18030') as file:
src = file.read()
print(src)
и все символи кирилици становяться китайскими иероглифами а при utf краказябка
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
from bs4 import BeautifulSoup
import requests
url = 'https://begoodtool.com/home/uk'
headers = {
'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 OPR/118.0.0.0'
}
reg = requests.get(url, headers=headers)
# №-
print(reg.text)
'''
...
<title>СпиÑок онлайн-ÑнÑÑÑÑменÑÑв - Be Good Tool</title>
...
'''
# №1
soup = BeautifulSoup(reg.content, "lxml")
#print(soup.prettify())
print(str(soup))
'''
...
<title>Список онлайн-інструментів - Be Good Tool</title>
...
'''
# №2
reg.encoding = 'utf-8'
print(reg.text)
'''
...
<title>Список онлайн-інструментів - Be Good Tool</title>
...
'''