1

Я записываюсь на занятия для моего университета; однако, классы заполнены, и мне нужно постоянно обновлять, чтобы проверить, когда / если классы открылись. У меня есть конкретная страница, которую я хочу обновить и которая содержит информацию о том, открыты / закрыты интересующие меня классы. Я не могу просто использовать расширение Chrome, такое как Page Monitor, так как, если я нажму кнопку обновления браузера, я в конечном итоге буду перенаправлен на основную страницу входа в университет (я не вышел из системы, просто в другой части сайт, где я должен проверить на изменения).

Как я могу иметь скрипт / макрос, который будет:

1) Обновить страницу.

2) Перейдите на страницу, которую мне нужно проверить. (Около 3 кликов, один из кликов - это радио-кнопка, если это имеет значение).

3) Проверьте изменения, которые я ищу, если изменения существуют, отправьте электронное письмо или создайте уведомление на рабочем столе.

4) Повторите через x количество времени ... т.е. 5 минут.

Я много гуглил в поисках решения, но, похоже, решения пока не существует. Я был бы очень признателен за некоторые идеи / решения. Спасибо!

2 ответа2

0

Я пытался сделать что-то в том же духе. Лучшее, что я смог придумать, - это скрипт VBA, который запускается из Excel. Он может открыть страницу, войти в систему (при необходимости) и симулировать нажатия кнопок. Содержимое страницы может быть отсканировано на предмет изменений, и вам могут быть отправлены электронные письма, если они есть. Единственная проблема - у вас должен быть компьютер, на котором вы можете оставить Excel открытым

Макрос состоит из 3 макросов 1) запускает макрос при открытии 2) устанавливает интервал времени 3) выполняет скрипт

Sub Auto_Open()
    MacroScheduler
End Sub

Sub MacroScheduler()
    'This macro sets the script to Run every minute
    runontime = Now + TimeValue("00:01:00") 'Change time intervals here
    Application.OnTime runontime, "MacroScheduler"
    OnlineChecker runontime
End Sub

Sub OnlineChecker(ByRef timetorun2)
    Dim NewEntry As Boolean
    NewEntry = False
    Dim ThisDoc As Object
    Set ThisDoc = Workbooks(ThisWorkbook.Name).Worksheets("Sheet1")
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    Dim IEobj As Variant
    Dim doc As Variant


    With ie
        .navigate "[YOUR URL]" 'Insert your URL here
        .Visible = False
    End With

        Do While ie.Busy: DoEvents: Loop
        Do While ie.ReadyState  4: DoEvents: Loop

    Set el = doc.getElementsByTagName("Input") 'this can be changed based on element type
    For Each IEobj In el
            Select Case IEobj.ID
            Case Is = "[Name of Element]" ' Insert name of HTML Element here
                    IEobj.Click
            End Select
    Next

    Do While ie.Busy: DoEvents: Loop
        Do While ie.ReadyState  4: DoEvents: Loop



    If Not ThisDoc.Range("A1") = "" Then
            If ThisDoc.Range("A1") = doc.body.innerText Then
                Exit Sub
            Else
                ThisDoc.Range("A1") = doc.body.innerText
                NewEntry = True
            End If
    Else
        ThisDoc.Range("A1") = doc.body.innerText
    End If

        If NewEntry = True Then
            NewEntry = False
    'This is meant to work with gmail accounts

    Dim iMsg As Object
        Dim iConf As Object
        Dim strbody As String
        Dim Flds As Variant

        Set iMsg = CreateObject("CDO.Message")
        Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1
    Set Flds = iConf.Fields
        With Flds
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[Insert your email address here]"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "[Insert your password]"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
            .Update
        End With

        strbody = "Class Posted"


        With iMsg
            Set .Configuration = iConf
            .To = "[Insert your email address]"
            .CC = ""
            .BCC = ""
            .From = "[Insert your email address]"
            .Subject = "Class Posted"
            .TextBody = strbody
            .send
        End With

        End If
        Application.StatusBar = "Done - Next Run @ " & timetorun2
            ie.Quit: Set ie = Nothing

End Sub
0

Используйте расширение Trimgle Web Monitor для современного браузера

С Trimgle вы можете отслеживать все веб-страницы и JSON, как REST API, вы можете автоматически отправлять собранную информацию на страницу Webhook

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .