mirror of
https://github.com/Dvorinka/ZoneramaScraper.git
synced 2026-07-29 05:53:48 +00:00
2a6b4f2940c4ae2d0579960bdb6ec5147ad033df
Zonerama Scraper (Go + Geziyor)
Blazing-fast JSON API to scrape Zonerama albums and photos using geziyor/geziyor.
- Input: Zonerama profile/link page, e.g.
https://eu.zonerama.com/Fcbizoni/1419417 - Output: JSON listing albums and photos.
- Photo links are normalized to
https://eu.zonerama.com/photos/{photoID}_1500x1000.jpg.
Requirements
- Go 1.22+
Install deps
go get -u github.com/geziyor/geziyor
Run the server
go run ./...
The server listens on http://localhost:8080.
API
See full endpoint reference in API.md.
Endpoints
/zonerama/zonerama-album
Common query parameters
rendered(bool, default:true) — Enable/disable JS rendering. Aliases:no-render=trueorno_render=trueto disable.debug(bool, default:false) — Iftrue, saves fetched HTML intodebuging/and serves at/debuging/.
/zonerama
Scrape albums and their photos starting from a Zonerama profile (account) or page URL.
Params:
link(required): A Zonerama URL (profile or album link)album_limit(int, default:5): Max albums to process from a profile (0= no limit)photo_limit(int, default:10): Max photos per album (0= no limit)concurrency(int, default:8): Max concurrent album fetches when rendering (capped byalbum_limit)
Example:
curl "http://localhost:8080/zonerama?link=https://eu.zonerama.com/Fcbizoni/1419417&album_limit=3&photo_limit=25" | jq .
/zonerama-album
Scrape a single album by URL (link must contain /Album/).
Params:
link(required):https://eu.zonerama.com/<Account>/Album/<AlbumId>photo_limit(int, default:10): Max photos from the album (0= no limit)
Example:
curl "http://localhost:8080/zonerama-album?link=https://eu.zonerama.com/SomeAccount/Album/13903610&photo_limit=25" | jq .
Notes
- This scraper parses:
- Albums from the main/profile page by selecting
li.list-alband readingdata-urlor the nested anchorhref. - Photos from each album page via
div.gallery-inner[data-type='photo']and itsdata-id(photo ID).
- Albums from the main/profile page by selecting
- For each photo ID, it builds
https://{host}/photos/{id}_1500x1000.jpg. - If Zonerama changes their HTML structure, selectors may need to be updated.
Server starts at :8080. CORS is enabled.
For full details and response schemas, see API.md.
Disclaimer
Be respectful of Zonerama's terms of service and rate limits. This project is for educational purposes.
Languages
HTML
96.8%
Go
3.1%