Quantcast
Channel: Linux.org.ru: Форум (тех. форум)
Viewing all articles
Browse latest Browse all 73859

Парсинг xml на Python3.5 с помощью bs4 [проблемы с кодировкой]

$
0
0

Нужно, распарсить xml в питоне, но назло мне появились проблемы с кодировкой.

Сначала сделал запрос к API (тут все норм)

import requests
#Переменные с параметрами для запросы
game = 'insurg'
count = '100'
gameme_page = 'http://stats.whiskey-server.ru'
#Сам запрос
req = gameme_page + '/api/playerlist/' + game + '?limit=' + count
r = requests.get(req)
print(r.encoding)
resp = r.text.encode('utf-8')
print(resp)

Но вот как дело дошло до парсинга тут появились проблемы

Вот такой код, выдает ошибку кодировки UnicodeEncodeError: 'ascii' codec can't encode character

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup

game = 'insurg'
count = '100'
gameme_page = 'http://stats.whiskey-server.ru'
req = gameme_page + '/api/playerlist/' + game + '?limit=' + count
r = requests.get(req)
resp = r.text.encode("utf-8")
soup = BeautifulSoup(resp, 'xml')
print (soup.prettify())

Подставил .encode(«utf-8») к prettify

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup

game = 'insurg'
count = '100'
gameme_page = 'http://stats.whiskey-server.ru'
req = gameme_page + '/api/playerlist/' + game + '?limit=' + count
r = requests.get(req)
resp = r.text
soup = BeautifulSoup(resp, 'xml')
print (soup.prettify().encode("utf-8"))
и вроде бы все заработало, но теперь во всех строчках появились \n

'<?xml version=«1.0» encoding=«utf-8»?>\n<gameME>\n <vendor>\n <label>\n gameME\n </label>\n <webpage>\n ......

Объясните пожалуйста как распарсить все это по-человечески.

P.s Если что, для доступа к GameME API никаких токенов не нужно, так что у вас вполне получится опробовать код самим

 , , ,


Viewing all articles
Browse latest Browse all 73859

Trending Articles