primalfetishnetwork.com
Notes
Seems like it might be a studio network restructure for Primal Fetish since that URL now redirects to Sheer.
URLs that you would expect to scrape
(Remove the ones that do not apply)
https://primalfetishnetwork.com/videos/ still seems to point a non-sheer site
Oh, I misunderstood. I thought there was an old broken scraper now
awful site with horribly inconsistent body types, not going to attempt again anytime soon
I've made this scrapper for scenes with the help of AI (not much of a coder myself) since I'm working on downloading scenes from Primal Fetish right now. Works decently after 150+ uses, the main issue is with Details (Video description), often the last paragraph or more are just a spam of keywords/tags/categories, which I tried filtering, but there's so many different formats it's provided in I gave up trying to catch them all, as it seemed easier to just delete that part manually after scrape. So maybe this will be helpful:
name: Primal Fetish Network
sceneByURL:
- action: scrapeXPath
url:
- primalfetishnetwork.com
scraper: sceneScraper
xPathScrapers:
sceneScraper:
scene:
Title:
selector: //h1[contains(@class, 'video__movieTitle')]
Date:
selector: //div[contains(@class, 'video__data') and contains(text(), 'Date')]
postProcess:
- javascript: |
// Remove 'Date ' prefix and ordinal suffix from day
let m = value.match(/Date (\d{1,2})(?:st|nd|rd|th)? (\w{3}) (\d{4})/);
if (m) {
// Pad day with leading zero if needed
let day = m[1].padStart(2, '0');
return `${day}-${m[2]}-${m[3]}`;
}
return value;
- parseDate: 02-Jan-2006
Performers:
Name: //div[contains(@class, 'video__list')]/span[contains(text(), 'Models:')]/following-sibling::div[1]/a/span
Tags:
Name: //div[contains(@class, 'video__listLinks--tags')]/a
Details:
selector: (//div[contains(@class, 'video-desc')])[1]/p
concat: "\n\n"
Image:
selector: //meta[@property="og:image"]/@content
Studio:
Name:
selector: //div[contains(@class, 'video__listLinks--tags')]/span[contains(text(), 'Studios:')]/following-sibling::a
postProcess:
- javascript: |
if (!value || value.trim() === "") {
return "Primal Fetish";
}
return value;
Thanks for the scraper template, adapted it to work with URLs. The details just can't really be helped