LINUX.ORG.RU

Сообщения Hinex

 

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

Форум — Development

Нужно, распарсить 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 никаких токенов не нужно, так что у вас вполне получится опробовать код самим

 , , , ,

Hinex
()

hping3 и пакет udp

Форум — General

Возможно ли в hping3 сформировать udp пакет с нужным header и payload? И если да, то как?

Header  - byte  -'T' (0x54) 
Payload - string - XXXXXXX

 ,

Hinex
()

json_decode не декодит строку

Форум — Web-development

Есть кусок кода задача которого парсить ид номера из группы ВК через API. Делаю POST запрос получаю ответ json, но вывести ид номера в отдельную переменную не выходит. Что можете подсказать?

<?PHP
$group_id = '1';
$offset = '0';
$count = '1000';
$ch = curl_init('http://api.vk.com/method/groups.getMembers');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, "group_id=$group_id&offset=$offset&count=$count");
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$result = curl_exec($ch); //в $result лежит ответ от сервера в json
curl_close($ch);
$result_decoded = json_decode("$result"); //тут этот json декодим
$ids = $result_decoded->{'users'}; //Пытаюсь вытащить только нужную часть ответа
echo "$ids"; //Нечего не выходит T_T
?>
/*
Так выглядит ответ от API:
{"response":{"count":3191,"users":[443289,598941,796845,906588.... дальше также идут просто номера ]}}
*/

 , , ,

Hinex
()

Проблемы с временем исполнения команд в crontab

Форум — Admin

По-умолчанию стоит часовой пояс EDT.

Но так как мне это неудобно в .profile я прописал TZ='Europe/Moscow'; export TZ

Теперь, команда date выдает правильное время по МСК

Проблема:

Ставлю в кронтаб задание на четыре часа утра

( читать дальше... )

Это задание исполняется не в 4 часа, как было задумано а в 11 по МСК.

Вопрос: Как заставить кронтаб работать по часовому поясу в .profile или как перевести всю ОС на МСК, чтобы не возникало таких проблем?

( cat /proc/version )

P.s Большая просьба тапками не кидаться, в линуксе я еще новичок =(

 , , ,

Hinex
()

RSS подписка на новые темы