News:

HOT TIP! Commands and groups can be copied and pasted directly from your command editor to the forum, and vice versa. This makes sharing command XML on the forum much easier!

Main Menu

запрос данных с сайта пример сайт вк

Started by mr.niki, November 20, 2016, 03:46:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mr.niki

Добрый день  вопрос в следующем   есть сайт   я хочу забрать с него данные   формат строки такой (  он работает )

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":"ТУТ ДОЛЖЕН БЫТЬ ТЕКСТ НА РУССКОМ "   
подскажите как правильно сделать запрос  и возможно ли получать ответы на Русском ( при запросе через браузер Русский текст есть)  если я правильно  понял надо  кодировку указать

mr.niki

Разобрался сделал через :
возвращает текст на Русском .  Но вопрос насколько правильно я сделал ?   

jitterjames

I cannot solve this problem without having a real URL that I can scrape to do some tests.

nime5ter

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>


TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

mr.niki

спасибо я сделал   при помощи  scrape post    с указанием json  и возвращает на Русском   и позволяет  изъять и обработать данные .   Спасибо за советы !  и за  уделенное время !

nime5ter

TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)