575

dumb_mes_download

575
Sep 15th, 2019
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.54 KB | None | 0 0
  1. import vk
  2. import re
  3. import sys
  4. import time
  5.  
  6. def wait_sec(n):
  7.     start = time.time()
  8.     while time.time() - start < n:
  9.         pass
  10.  
  11.  
  12. f = open('out.txt', 'w')
  13. sys.stdout = f
  14.  
  15. def delTrash(message):
  16.     trash = re.compile('[^a-zA-Zа-яA-я0-9.!?,-/\() ]')
  17.     message = trash.sub('', message)
  18.     return re.sub(r'\s+', ' ', message)
  19.  
  20. login = input('login: ')
  21. password = input('password: ')
  22. target_id = input('target id: ')
  23.  
  24. session = vk.AuthSession(app_id='2685278', user_login=login, user_password=password)
  25. vk_api = vk.API(session)
  26.  
  27. params = {  'user_id': target_id,
  28.             'v': '5.38'}
  29.  
  30. data = vk_api.messages.getHistory(**params)
  31.  
  32. quantity = data['count']
  33. processed = 0
  34. offset = 0
  35.  
  36.  
  37. while processed != quantity:
  38.     if quantity - processed < 200:
  39.         count = quantity - processed
  40.     else:
  41.         count = 200
  42.  
  43.     params = {  'user_id': target_id,
  44.                 'count' : count,
  45.                 'offset' : offset,
  46.                 'v': '5.38'}
  47.  
  48.     data = vk_api.messages.getHistory(**params)
  49.  
  50.     for i in range(count):
  51.         if data['items'][i]['from_id'] == int(target_id):
  52.             message = data['items'][i]['body']
  53.             while message.count('\n') > 0:
  54.                 message = message.replace('\n', ' ')
  55.             message = delTrash(message)
  56.             message = message.encode('cp866', errors='ignore').decode('cp866')
  57.             if message != '':
  58.                 print(message)
  59.                 done += 1
  60.  
  61.     processed += count
  62.     offset += count
  63.     wait_sec(1)
Add Comment
Please, Sign In to add comment