Okey, więc zamysł jest prosty: jak zmienia się treść aukcji, to bot wysyła sygnał do loga, co 5 - 30 minut odświeżająć serwer. I rzeczywiście działa na jednej stronie www, ale na allegro nie. O co chodzi, może ktoś umie pomóc ? Już czuję się jak by mi się do połowy udało, ale może to tylko uczucie że da się tak zrobić.
import time
import requests
from datetime import datetime
url = "https://www.blocket.se/annons/stockholm/canon_r50/1213233090" # replace with your website
keyword = "touchskärm"
headers = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/127.0.0.1 Safari/537.36"
),
"Accept-Language": "pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7"
}
week_seconds = 7 * 24 * 60 * 60 # tydzień
interval = 30 * 60 # 30 minut
start = time.time()
while time.time() - start < week_seconds:
try:
response = requests.get(url, timeout=10)
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if keyword.lower() in response.text.lower():
log_line = f"[{now}] ZNALEZIONO słowo '{keyword}'. Kończę działanie.\n"
with open("log.txt", "a", encoding="utf-8") as f:
f.write(log_line)
print(log_line.strip())
break
else:
log_line = f"[{now}] Nie znaleziono słowa '{keyword}'. Sprawdzę za 30 minut.\n"
with open("log.txt", "a", encoding="utf-8") as f:
f.write(log_line)
print(log_line.strip())
except Exception as e:
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_line = f"[{now}] BŁĄD: {e}\n"
with open("log.txt", "a", encoding="utf-8") as f:
f.write(log_line)
print(log_line.strip())
time.sleep(interval)
import time
import requests
from datetime import datetime
urls = [
"https://allegro.pl/oferta/album-na-zdjecia-00001899-10x15-17841317036", # <- pierwszy adres
"https://allegro.pl/oferta/stockholm-drewniana-ramka-na-zdjecia-30-x-30-cm-17841293589" # <- drugi adres
]
keyword = "skończyła"
# Nagłówki udające przeglądarkę Chrome
headers = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/127.0.0.1 Safari/537.36"
),
"Accept-Language": "pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7"
}
week_seconds = 7 * 24 * 60 * 60 # tydzień
interval = 5 * 60 # 5 minut
start = time.time()
while time.time() - start < week_seconds:
for url in urls: # sprawdzamy każdy link po kolei
try:
response = requests.get(url, headers=headers, timeout=10)
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if keyword.lower() in response.text.lower():
log_line = f"[{now}] ZNALEZIONO słowo '{keyword}' na stronie: {url}. Kończę działanie.\n"
with open("log.txt", "a", encoding="utf-8") as f:
f.write(log_line)
print(log_line.strip())
exit(0) # zakończ cały program
else:
log_line = f"[{now}] Nie znaleziono słowa '{keyword}' na stronie: {url}. Sprawdzę za 5 minut.\n"
with open("log.txt", "a", encoding="utf-8") as f:
f.write(log_line)
print(log_line.strip())
except Exception as e:
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_line = f"[{now}] BŁĄD przy stronie {url}: {e}\n"
with open("log.txt", "a", encoding="utf-8") as f:
f.write(log_line)
print(log_line.strip())
time.sleep(interval)
[2025-09-01 20:12:53] ZNALEZIONO słowo 'touchskärm'. Kończę działanie.
[2025-09-01 20:34:24] Nie znaleziono słowa 'skończyła' na stronie: https://allegro.pl/oferta/album-na-zdjecia-00001899-10x15-17841317036. Sprawdzę za 5 minut.
[2025-09-01 20:34:25] Nie znaleziono słowa 'skończyła' na stronie: https://allegro.pl/oferta/stockholm-drewniana-ramka-na-zdjecia-30-x-30-cm-17841293589. Sprawdzę za 5 minut.
[2025-09-01 20:44:29] Nie znaleziono słowa 'skończyła' na stronie: https://allegro.pl/oferta/album-na-zdjecia-00001899-10x15-17841317036. Sprawdzę za 5 minut.
[2025-09-01 20:44:29] Nie znaleziono słowa 'skończyła' na stronie: https://allegro.pl/oferta/stockholm-drewniana-ramka-na-zdjecia-30-x-30-cm-17841293589. Sprawdzę za 5 minut.
[2025-09-01 20:44:32] ZNALEZIONO słowo 'touchskärm'. Kończę działanie.
[2025-09-01 20:49:51] Nie znaleziono słowa 'skończyła' na stronie: https://allegro.pl/oferta/album-na-zdjecia-00001899-10x15-17841317036. Sprawdzę za 5 minut.
[2025-09-01 20:49:52] Nie znaleziono słowa 'skończyła' na stronie: https://allegro.pl/oferta/stockholm-drewniana-ramka-na-zdjecia-30-x-30-cm-17841293589. Sprawdzę za 5 minut.
Z allegro próbowałem tekst z różnych sekcji oraz przez DevTools, niestety jest problem. Czy może te elementy się tam dynamicznie ładują przez js ? Co robię źle ?