mirror of
https://github.com/Dvorinka/ZoneramaScraper.git
synced 2026-07-29 05:53:48 +00:00
d0721aff7cbaf0b9a8067a2d3dfe60c478ad5f84
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%