News:

HOT TIP! Enable the History Window in the main UI when trying to problem solve. It provides a handy log of what is happening. Roll over lines in the History to get more details.

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)