Загрузка...

Мониторинг онлайна на питоне

Тема в разделе Python создана пользователем kot8005 18 июл 2019. 482 просмотра

Загрузка...
  1. kot8005
    kot8005 Автор темы 18 июл 2019 1 27 май 2017
    Эта программа (если такой ужас можно назвать программой) записывает в лог состояние страницы в ВК (онлайн человек или нет) с текущим временем. Не знаю, для чего я вообще это написал, просто скучно было. Если Вам будет не сложно, оцените этот код)

    Код
    from bs4 import BeautifulSoup
    import requests
    import time
    import plyer
    import datetime
    import os
    import sys

    Boolyk = True
    url = input('Введите ссылку на вк: ')
    UpdateTime = input('Введите частоту обновления (в секундах): ')
    #Convert String to integer
    UpdateTimeInt = int(UpdateTime)
    #Script name detect
    file_name = os.path.basename(sys.argv[0])
    print(file_name)
    #Current Directory Detect
    CurDir = os.path.abspath(__file__)
    LogCurDir = CurDir + 'logCheck.log'
    LogCurDirStr = str(LogCurDir)
    DirLogReplace = LogCurDirStr.replace(file_name, '')
    print('Made by pthon (vk.com/pthon)')
    while Boolyk:
    log = open(DirLogReplace, 'a+', encoding='utf-8')
    now = datetime.datetime.now()
    GetTime = now.strftime('%d-%m-%Y %H:%M:%S')
    #Html Parse
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'}
    page = requests.get(url, headers = headers)
    soup = BeautifulSoup(page.text, 'html.parser')
    LastOnline = soup.find('div', {'class': 'profile_time_lv'})
    UserName = soup.find('h2', {'class': 'page_name'}).string
    #Tag to str
    UserNameStr = str(UserName)
    #Check Online
    if LastOnline == None:
    #plyer.notification.notify(message='Юзер '+ UserNameStr + ' онлайн', app_name='PyCheck', title='Уведомление')
    log.write(GetTime + ' ' + 'Юзер ' + UserNameStr + ' ' + '(' + url + ')' + ' онлайн' + '\n')
    print(GetTime + ' ' + 'Пользователь ' + UserNameStr + '(' + url + ')' + ' онлайн.')
    #Print

    #Log write
    if LastOnline != None:
    LastOnline = LastOnline.text
    LastOnlineStr = str(LastOnline)
    print(GetTime + ' ' + LastOnlineStr + ' ' + UserNameStr + ' ' + url)
    log.write(GetTime + ' ' + LastOnlineStr + ' ' + UserNameStr + ' ' + url)
    log.write('\n')
    log.close()
    time.sleep(UpdateTimeInt)
     
  2. _Skill_
    _Skill_ 18 июл 2019 1015 25 июн 2018
    Зачем переменная boolyk?
     
  3. kot8005
    kot8005 Автор темы 18 июл 2019 1 27 май 2017
    Это я реализовал бесконечный цикл
     
  4. _Skill_
    _Skill_ 18 июл 2019 1015 25 июн 2018
    kot8005, а просто while True не судьба написать?
     
  5. kot8005
    kot8005 Автор темы 18 июл 2019 1 27 май 2017
    Я только учусь, не знал про такой способ
     
Top