erez.ac / dog
Dog show crawler
Sivu selittää miten erez.ac:n näyttelytulosten hakuohjelma toimii. This page explains how the erez.ac dog show browser gets its public Showlink data.
- User-Agent
- erez.ac-dog-show-browser/1.0 (+https://erez.ac/dog/about-crawler)
Suomeksi
Näyttelytulosten hakuohjelma
Miksi se on olemassa
erez.ac/dog-sivun idea on tarjota parempi käyttöliittymä ja monipuolisemmat hakujen suodatusmahdollisuudet Kennelliiton näyttelytuloksiin. Jotta suodatusta voidaan tarjota tehokkaasti, täytyy tiedot hakea etukäteen välimuistiin. Botti hoitaa juuri tämän. Kun botti on rauhalliseen tahtiin käynyt datan hakemassa, ei kävijöiden haut ja suodatukset aiheuta enää pyyntöjä Showlinkin tulospalveluun, vaan data tarjoillaan suoraan erez.ac:n palvelimelta.
Mitä botti tekee?
- Hakee julkisen näyttelylistan.
- Hakee näyttelyiden julkiset rotulistat ja koiramäärät.
- Hakee julkiset rotukohtaiset tulossivut, jotta /dog voi näyttää ja suodattaa tuloksia.
- Tekee pyynnöt rauhallisessa rytmissä, mahdollisuuksien mukaan ennakkoon.
Mitä botti ei tee?
- Se ei kirjaudu sisään eikä hae ei-julkista tietoa.
- Se ei yritä kiertää sivuston rajoituksia.
- Se ei tee jatkuvaa massahakua, vaan rajoitetun määrän pyyntöjä tietyllä aikavälillä.
- Sen tarkoitus ei ole aiheuttaa haittaa Showlinkin palvelimille tai käyttäjille.
Miten pyyntöjen määrä on rajattu?
Suurin yksittäinen työ on kokonaisen näyttelyn tulosten tallentaminen välimuistiin. Se tarkoittaa yhtä sivupyyntöä jokaista rotua kohti. Jos suuressa näyttelyssä olisi 300 rotua, haku olisi noin 300 sivupyyntöä. Niin paljoa ei haeta kerralla, sillä se voisi aiheuttaa hetkellistä hitautta sivuston muille käyttäjille. Pyyntöjä Showlinkin palvelimelle tehdäänkin enintään 3 rinnakkain, pitäen vähintään 0,4 sekunnin väli pyynnöille. Kun näyttely on kertaalleen haettu ja tallennettu erez.ac:n välimuistiin, tieto tarjoillaan /dog-sivun käyttäjille erez.ac:n välimuistista. Käynnissä olevien näyttelyiden välimuistia tarkistetaan kuitenkin uudelleen, jotta päivän aikana päivittyvät tulokset näkyvät sivulla.
- Kävijä haluaa välimuistista löytymättömän näyttelyn tulostiedot: Haku suoritetaan enintään yksi näyttely kerrallaan, yllä mainituin ryppäin.
- Automaattinen tuoreiden näyttelyiden välimuisti: Hakuja suoritetaan enintään 2 näyttelyn tietoihin yhden ajon aikana; uusi ajo alkaa aikaisintaan 2 minuutin välein ja vain, jos kukaan kävijä ei odota tulostietoja ennestään. Käynnissä olevien näyttelyiden tulosvälimuisti vanhenee oletuksena 2 minuutissa.
- Rotulistat: Enintään 6 näyttelyn tiedot haetaan noin 15 minuutin välein. Uudet näyttelyt haetaan heti, saman päivän näyttelyiden rotulistat noin 5 minuutin välein ja muut tulevat näyttelyt muutaman kerran vuorokaudessa.
- Käynnissä olevasta näyttelystä haetaan kaksi yhteenvetosivua (ryhmien voittajat ja BIS). Näin nähdään suoraan mitkä loppukilpailut on jo ratkaistu, eikä tarvitse arvailla sitä hakemalla kymmeniä rotusivuja uudelleen.
- Rotusivuja haetaan uudelleen sen mukaan, mitkä kehät ovat todennäköisimmin kesken: kunkin tuomarin ensimmäinen keskeneräinen rotu haetaan tiheimmin. Valmiiltakin näyttäviä rotuja käydään läpi hitaasti niin kauan kuin näyttely on käynnissä, koska tuloksia voidaan kirjata järjestelmään vasta kehän päätyttyä.
- Näyttelylista: Haetaan uudelleen aikaisintaan 30 minuutin välein.
- Tulevista näyttelyistä haetaan rotulistat. Tuloslistoja aletaan kysellä näyttelypäivänä klo 8:00 aamulla alkaen.
- Mitään ei haeta Showlinkistä klo 21:00–8:00 välisenä aikana — ei tuloksia, ei rotulistoja, ei näyttelylistaa. Yöllä ei ole käynnissä yhtään koiranäyttelyä, joten haku olisi turhaa kuormaa. Aiemmin haetut tulokset näkyvät silti sivulla, ja haku jatkuu aamulla. Monipäiväinen näyttely näkyy yön yli näyttelylistalla tilassa JatkuuKäynnissä-tilan sijaan ja jatkaa seuraavana näyttelypäivänä.
Kuka on vastuussa?
Hakusivustoa ylläpitää Konsta Janhunen. Lisätiedot ja yhteystiedot löytyvät erez.ac-pääsivulta. Mikäli mitään kysyttävää herää, älä epäröi ottaa yhteyttä!
English
Dog show result crawler
Why it exists
The idea behind erez.ac/dog is to offer a better interface and more flexible search filters for Kennelliitto dog show results. To make that filtering work efficiently, the data needs to be fetched into a cache in advance. That is exactly what this bot does. Once the bot has collected the data at a calm pace, visitor searches and filters no longer create requests to Showlink's result service; the data is served directly from the erez.ac server.
What the bot does
- Fetches the public show list.
- Fetches public breed lists and dog counts for shows.
- Fetches public breed-level result pages, so /dog can show and filter results.
- Makes requests at a calm pace, in advance where possible.
What the bot does not do
- It does not log in or fetch non-public information.
- It does not try to bypass the site's limits.
- It does not run a continuous mass crawl; it makes a limited number of requests within a fixed time window.
- It is not intended to cause trouble for Showlink's servers or users.
How request volume is limited
The largest single job is saving all results for one show into the cache. That means one page request for each breed. If a large show had 300 breeds, that would mean about 300 page requests. They are not all fetched at once, because that could briefly slow the site down for other users. Requests to Showlink are therefore limited to at most 3 in parallel, with at least 0.4 seconds between request starts. Once a show has been fetched once and saved in the erez.ac cache, /dog users receive the data from the erez.ac cache. For currently ongoing shows, the cache is checked again so results that arrive during the day can appear on the page.
- A visitor wants result data for a show that is not yet cached: The fetch is run for at most one show at a time, in the batches described above.
- Automatic cache for recent shows: Data is fetched for at most 2 shows during one run; a new run starts no sooner than every 2 minutes and only if no visitor is already waiting for result data. Result caches for currently ongoing shows expire after 2 minutes by default.
- Breed lists: Data for at most 6 shows is fetched about every 15 minutes. A show that is new to us is fetched immediately, a show being judged today about every 5 minutes, and other upcoming shows a few times a day.
- For a show in progress we read two summary pages (group winners and BIS). That says directly which finals have been decided, instead of guessing at it by re-fetching dozens of breed pages.
- Breed pages are re-read according to which rings are most likely still in progress: each judge's first unfinished breed is checked most often. Breeds that already look finished are still swept slowly for as long as the show runs, because results can be entered into the system after a ring has ended.
- Show list: Fetched again no sooner than every 30 minutes.
- For upcoming shows, breed lists are fetched. Result lists are first checked on the show day, starting at 8:00 in the morning.
- Nothing at all is fetched from Showlink between 21:00 and 08:00 — no results, no breed lists, no show list. No dog show runs at night, so those requests would be pure load. Results fetched earlier still stay visible on the page, and fetching resumes in the morning. Over the night a multi-day show appears in the list as Jatkuu ("continues") rather than Käynnissä ("ongoing"), and resumes on the next show day.
Who is responsible?
The search page is maintained by Konsta Janhunen. More information and contact details are available on the erez.ac main page. If you have any questions, please do not hesitate to get in touch!