Я пытаюсь написать программу python, которая поможет мне автоматически получать новости с разных сайтов. На данный момент я использую python3 с beautifulsoup4 и urllib3, чтобы получить удаленную страницу и проанализировать ее.проблемы с кодировкой в python3 и urllib3
проблема возникает, когда я пытаюсь прочитать текст из этой страницы, потому что они содержат символы не ASCII, такие как À à Ео ... и так далее ...
Я попытался расшифровать страницу из utf-8 сразу после ее извлечения, чтобы поместить ее в переменную, а затем записать ее в файл без успеха ... и даже после прочтения по-разному подхода к этой проблеме я не мог найти рабочего решения.
мне было интересно, если кто-то из вас был в моей же ситуации ..
Вот мой код
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib3
http = urllib3.PoolManager()
req = http.request('GET', 'http://www.....')
page = req.data.decode('utf-8')
soup = BeautifulSoup(page)
elements = soup.find_all('div', class_='content')
fp = open('results.xml', 'a')
for element in elements:
link = element.find('a')
descr = element.find('div', class_='description')
v_link = u'%s' % link.get('href')
v_description = u'%s' % descr.text
xml = "<news>\n"
xml = xml+ " <description>"+ v_description+ "</description>\n"
xml = xml+ " <page_link>"+ v_link+ "</page_link>\n"
xml = xml+ "</news>\n"
fp.write(xml+ '\n')
#END FOR LOOP
fp.close()
У вас есть примеры URL-адресов? – declension
«Проблема выходит» В чем проблема именно? Есть ли ошибка? Что это? На какой линии? – shazow