VoxCommando
Поддержка русского языка => Поддержка русского языка => Topic started by: mr.niki on November 20, 2016, 03:46:52 PM
-
Добрый день вопрос в следующем есть сайт я хочу забрать с него данные формат строки такой ( он работает )
https://api.vk.com/method/messages.get?access_token=***********************************
как правильно сделать этот запрос из vc get , post , я пробовал simple но столкнулся с тем что Русский
язык не понимает
вот пример возврата
{"response":[3705,{"mid":38754,"date":1479669715,"out":0,"uid":154397816,"read_state":1,"title":" ... ","body":"да Ñ Ð¿Ð¾Ð½Ñл"},{"mid":38752,"date":1479669634,"out":0,"uid":154397816,"read_state":1,"title":" ... ","body":"лел"},{"mid":38748,"date":1479669512
"body":"лел" "body":"ТУТ ДОЛЖЕН БЫТЬ ТЕКСТ НА РУССКОМ "
подскажите как правильно сделать запрос и возможно ли получать ответы на Русском ( при запросе через браузер Русский текст есть) если я правильно понял надо кодировку указать
-
Разобрался сделал через :
возвращает текст на Русском . Но вопрос насколько правильно я сделал ?
-
I cannot solve this problem without having a real URL that I can scrape to do some tests.
-
It is a character encoding problem on the VK website.
You can try to use a Python solution.
e.g.
import re,urllib2
URL = 'https://api.vk.com/method/messages.get?access_token=***********************************'
#This is just a test string. For Scrape, you need to use the the urllib2 code instead, and the correct URL
message = '{"response":[3705,{"mid":38754,"date":1479669715,"out":0,"uid":154397816,"read_state":1,"title":" ... ","body":"да Ñ Ð¿Ð¾Ð½Ñл"},{"mid":38752,"date":1479669634,"out":0,"uid":154397816,"read_state":1,"title":" ... ","body":"лел"},{"mid":38748,"date":1479669512'
#s = urllib2.urlopen(URL)
#message=s.read()
try:
message=message.decode('utf-8')
except:
pass
m = re.findall( r'"body":"(.*?)"', message, re.I)
for match in m:
print match
A VC command example:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.3.0-->
<command id="69" name="UTF8 DECODE" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape</cmdType>
<params>
<param>https://api.vk.com/method/messages.get?access_token= ..........</param>
</params>
<cmdRepeat>0</cmdRepeat>
</action>
<action>
<cmdType>Results.SetLastResult</cmdType>
<params>
<param>{"response":[3705,{"mid":38754,"date":1479669715,"out":0,"uid":154397816,"read_state":1,"title":" ... ","body":"да Ñ Ð¿Ð¾Ð½Ñл"},{"mid":38752,"date":1479669634,"out":0,"uid":154397816,"read_state":1,"title":" ... ","body":"лел"},{"mid":38748,"date":1479669512</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>"body":"(.*?)"</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result = '{Match.1}'.decode('utf8')</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.AddText</cmdType>
<params>
<param>Decoded: {LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
-
спасибо я сделал при помощи scrape post с указанием json и возвращает на Русском и позволяет изъять и обработать данные . Спасибо за советы ! и за уделенное время !
-
пожалуйста. You're welcome.