Documentation
¶
Overview ¶
Package kellymadison scrapes the Kelly Madison Media network of studios.
The network splits across two distinct CMS platforms, modelled here as two site families:
Fidelity CMS (pornfidelity, teenfidelity, kellymadison): a Laravel tour with a server-rendered, per-site-filtered listing at /episodes?site=N&page=P and schema.org VideoObject detail pages at /episodes/{id}. Each branded site has its own ?site=N filter, so the listing is already correctly attributed and newest-first — perfect for scraper.Paginate.
Ultra CMS (5kporn, 5kteens, 8kmilfs, 8kteens): a single shared catalogue served as an AJAX JSON listing at 5kporn.com/episodes/search?sort=newest. Every episode ID is prefixed with its sub-brand (5KP/5KT/8KM/8KT), so a branded site is scraped by walking the shared catalogue and keeping only the rows whose prefix matches the site. Because the per-site subset is still globally newest-first, KnownIDs early-stop works within it; the 8km/8kt /episodes/search endpoint returns a server error, so all four Ultra sites read the catalogue from 5kporn.com and build per-site detail URLs on their own domain.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Scraper ¶
type Scraper struct {
// Client is the HTTP client; exported so tests can inject httptest.
Client *http.Client
// contains filtered or unexported fields
}
Scraper implements scraper.StudioScraper for one Kelly Madison network site.