Program wykrywający zmiany na stronie internetowej

0

Witam,

Z pomocą Chat GPT pisze swój pierwszy program w pythonie. Ma to być prosty program, który będzie monitorował stronę i w momencie kiedy na stronie, zostanie dodany nowy wpis to powinien przesłać wiadomość na telegram.

No niestety, skończyło się na tym ze mam ochotę wyj... monitor za okno. A że jestem uparty to chce to mimo wszystko zrobić, dlatego jeśli ktoś poświeci chwile swojego czasu i mi pomoże to będę bardzo wdzięczny (:

Program powinien działać w taki sposób ze ma za zadanie monitorować tą stronę: https://www.binance.com/en/support/announcement/new-cryptocurrency-listing?c=48&navId=48

I w momencie kiedy pojawi się nowy wpis ze słowem zawierającym ciąg znaków "list", ma dać informacje na telegramie że nowy wpis się pojawił.. Bota mam gotowego, tu nie było problemów. Sama funkcja wysyłania powiadomień na telegramie działa, bo na początku bot mi co kilka sekund wysyłał informacje o nowym wpisie, nawet jak tego wpisu nie było. Teraz nie wysyła w ogólnie powiadomień, dla testu podałem link do forum, na którym założyłem temat z tytułem "list" i "listing" aby sprawdzać czy działa, no i nie działa.

Ogólnie poprosiłem chat GPT aby mi napisał program aby po wykryciu słowa "list" wysyłał powiadomienie.

Mam nadzieje że wytłumaczyłem o co mi chodzi, jeśli ktoś mi pomoże to ogarnąć aby ten program działał to będę bardzo wdzięczny.

To jest kod mojego programu, tak na prawdę może tu być źle wszystko:

import asyncio
import telegram
from bs4 import BeautifulSoup
import requests

# Ustawienia
TELEGRAM_TOKEN = '5998518131:AAGkLCDxR2-D6RLDw6xR1xkrwtQ7hd-9Yyk'
CHAT_ID = '5074624630'
URL = 'https://forum.autokacik.pl/forum/118-seat/'
WAIT_SECONDS = 10

# Funkcja do wysyłania powiadomienia na Telegram
async def send_telegram_message(text):
    bot = telegram.Bot(token=TELEGRAM_TOKEN)
    await bot.send_message(chat_id=CHAT_ID, text=text)

# Główna funkcja
async def main():
    previous_entries = set()

    while True:
        response = requests.get(URL)
        soup = BeautifulSoup(response.content, 'html.parser')
        entries = soup.find_all('a', class_='css-sg4qke')
        new_entries = []

        for entry in entries:
            if 'list' in entry.text.lower():
                new_entries.append(entry['href'])

        for entry in new_entries:
            if entry not in previous_entries:
                # Wykryto nowy wpis na stronie
                await send_telegram_message(f'Nowy wpis na stronie Binance: {entry}')
                previous_entries.add(entry)

        await asyncio.sleep(WAIT_SECONDS)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
1

A co ci nie działa? Co się dzieje jak uruchamiasz program?

BTW nawet link do strony masz zły ustawiony bo piszesz że chcesz sprawdzać https://www.binance.com/en/support/announcement/new-cryptocurrency-listing?c=48&navId=48 , a w kodzie masz https://forum.autokacik.pl/forum/118-seat/

3
The 3DO napisał(a):

Witam,

Z pomocą Chat GPT pisze swój pierwszy program w pythonie.

Bardzo bardzo złe podejście.
ChatGpt to fajne narzędzie, ale popełnia takie same błedy jak człowiek, szczególnie jak nieprofesjonalnie zadaje się pytanie.
Po prostu ChatGpt zobaczy "O początkujący zdaje pytanie, ergo mam wyprodukować kod początkującego, czyli takie coś bezsensu".
Mało tego, jak używa się pisze samemu kod, to najnowsza wersja Copilot widzi, że programista zrobił błąd, to zakłada, że to jest celowe i dodaje do kodu więcej exploit-ów.

Ergo używanie ChatGpt bez podstwowej (a nawet średniej) wiedzy na dany temat, będzie kończyć się tragedią i/lub irytacją.

0

Testuje program w taki sposób że mam podana stronę:

https://forum.autokacik.pl/forum/118-seat/

Odpalam program, wchodzę na to forum i zakładam nowy temat aby w tytule było słowo "List", program powinien monitorować tą stronę i wysłać powiadomienie na Telegram że na tej stronie został wykryty nowy wpis. Niestety tego nie robi, a ja nie mam pojęcia co jest nie tak,

1

Niestety tego nie robi, a ja nie mam pojęcia co jest nie tak

To debugger do ręki i dupa debugging czas start; a, i spróbuj przepisać bez, asyncio żebyś chociaż miał pojęcie jak to działa;)

PS Jakbym miał zgadywać to problem jest tutaj: entries = soup.find_all('a', class_='css-sg4qke')

1

Jeśli chcesz tylko monitorować zmiany na stronie, a nie umiesz jeszcze za bardzo programować (i pewnie nie zależy ci na nauce, skoro ChatGPT ci pisze program), to może spróbować poszukać jakichś gotowych narzędzi do tego? Google coś zwraca: https://www.google.com/search?q=monitor+website+change chociaż nie korzystałem, więc nie wiem, ile to warte.

1 użytkowników online, w tym zalogowanych: 0, gości: 1