Author Topic: запрос данных с сайта пример сайт вк  (Read 2145 times)

0 Members and 1 Guest are viewing this topic.

mr.niki

  • Contributor
  • ***
  • Posts: 84
  • Karma: 1
    • View Profile
Добрый день  вопрос в следующем   есть сайт   я хочу забрать с него данные   формат строки такой (  он работает )

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

  • Contributor
  • ***
  • Posts: 84
  • Karma: 1
    • View Profile
Re: запрос данных с сайта пример сайт вк
« Reply #1 on: November 20, 2016, 04:00:46 PM »
Разобрался сделал через :
возвращает текст на Русском .  Но вопрос насколько правильно я сделал ?   

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7714
  • Karma: 116
    • View Profile
    • VoxCommando
Re: запрос данных с сайта пример сайт вк
« Reply #2 on: November 20, 2016, 04:20:05 PM »
I cannot solve this problem without having a real URL that I can scrape to do some tests.

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: запрос данных с сайта пример сайт вк
« Reply #3 on: November 20, 2016, 06:06:54 PM »
It is a character encoding problem on the VK website.

You can try to use a Python solution.

e.g.

Code: [Select]
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:

Code: [Select]
<?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>

« Last Edit: November 20, 2016, 06:12:18 PM by 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)

mr.niki

  • Contributor
  • ***
  • Posts: 84
  • Karma: 1
    • View Profile
Re: запрос данных с сайта пример сайт вк
« Reply #4 on: November 21, 2016, 11:21:01 AM »
спасибо я сделал   при помощи  scrape post    с указанием json  и возвращает на Русском   и позволяет  изъять и обработать данные .   Спасибо за советы !  и за  уделенное время !

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: запрос данных с сайта пример сайт вк
« Reply #5 on: November 21, 2016, 11:28:20 AM »
пожалуйста. You're welcome.
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)