Некорректная запись русских символов в файл
Пытаюсь спарсить все ссылки с Википедии и сохранить в файл, но сохраняются они как-то странно
import requests
from bs4 import BeautifulSoup
r = requests.get('https://ru.wikipedia.org/wiki/')
if r.status_code == 200:
soup = BeautifulSoup(r.text, 'lxml')
all_link = soup.find_all('a')
with open('test.txt', 'w', encoding='utf-8') as fil:
for item in all_link:
if 'href' in item.attrs:
fil.write(f"{item.get_text()} --- {item['href']}")
В файл попадает что-то вот такое
стабильная версия --- /wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%B0%D1%82%D1%80%D1%83%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5отпатрулированная --- https://ru.wikipedia.org/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%96%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D1%8B&type=review&page=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%
Хотя сами ссылки в адресной строке выглядят примерно так -
ru.wikipedia.org/w/index.php?title=Служебная:Журналы&type=review&page=Заглавная_страницаПерейти
В Документации Python по этому поводу сказано, что utf-8 поддерживает все языки.
В чём проблема? Разве я не указал кодировку текста через encoding
?
Источник: Stack Overflow на русском