name: FreeonesCommunity performerByName: action: scrapeXPath queryURL: https://www.freeones.com/babes?q={}&v=teasers&s=relevance&l=96&m%5BcanPreviewFeatures%5D=0 scraper: performerSearch performerByURL: - action: scrapeXPath url: - freeones.xxx - freeones.com scraper: performerScraper sceneByName: action: scrapeXPath queryURL: https://www.freeones.com/vod?q={} scraper: sceneSearch sceneByQueryFragment: action: scrapeXPath queryURL: "{url}" scraper: sceneScraper sceneByURL: - action: scrapeXPath url: - www.freeones.com scraper: sceneScraper movieByURL: - action: scrapeXPath url: - www.freeones.com scraper: movieScraper xPathScrapers: performerSearch: performer: Name: //div[@id="search-result"]//p[@data-test="subject-name"]/text() URL: selector: //div[@id="search-result"]//div[@data-test="teaser-subject"]/a/@href postProcess: - replace: - regex: ^ with: https://www.freeones.com - regex: /feed$ with: /bio sceneSearch: common: $movieTitle: //div[@data-test="teaser-vod"]//img scene: Title: $movieTitle/@alt Image: $movieTitle/@src URL: selector: //div[@data-test="teaser-vod"]/a/@href postProcess: - replace: - regex: ^ with: "https://www.freeones.com" sceneScraper: common: $commonRoot: //*[@id="description"] $performerName: //a[@data-test="link_Cast"] scene: Title: //h1 URL: //link[@rel="alternate"][1]/@href Details: $commonRoot//div[contains(concat(' ',normalize-space(@class),' '),' pb-2 ')] Studio: Name: $commonRoot//span[@data-test="link_span_Studio"] Director: $commonRoot//span[@data-test="link_span_Director"] Date: selector: //div[contains(concat(' ',normalize-space(@class),' '),' mid-content-pr-past-date ')] postProcess: - replace: - regex: .+?(\w+\s\d{1,2},\s\d{4}).+ with: $1 - parseDate: January 2, 2006 Movies: Name: //h1 URL: //link[@rel="alternate"][1]/@href Performers: Name: $performerName/span Tags: Name: //li[@class="list-inline-item"]/a # URL: # selector: $performerName/@href # postProcess: # - replace: # - regex: ^ # with: "https://www.freeones.com" movieScraper: common: $commonRoot: //*[@id="description"] $performerName: //a[@data-test="link_Cast"] movie: Name: //h1 Synopsis: $commonRoot//div[contains(concat(' ',normalize-space(@class),' '),' pb-2 ')] Duration: $commonRoot//span[@data-test="link_span_Duration"] Studio: Name: $commonRoot//span[@data-test="link_span_Studio"] Director: $commonRoot//span[@data-test="link_span_Director"] Date: selector: //div[contains(concat(' ',normalize-space(@class),' '),' mid-content-pr-past-date ')] postProcess: - replace: - regex: .+?(\w+\s\d{1,2},\s\d{4}).+ with: $1 - parseDate: January 2, 2006 FrontImage: //*[@id="fxgp-gallery"]/a[1]/@href BackImage: //*[@id="fxgp-gallery"]/a[2]/@href performerScraper: performer: Name: selector: //h1 postProcess: - replace: - regex: (.+)\sidentifies.+ with: $1 URL: //link[@rel="alternate" and @hreflang="x-default"]/@href Twitter: //form//a[contains(@href,'twitter.com/')]/@href Instagram: //form//a[contains(@href,'instagram.com/')]/@href Birthdate: selector: //span[@data-test="link_span_dateOfBirth"]/text() postProcess: - parseDate: January 2, 2006 Ethnicity: selector: //span[@data-test="link_span_ethnicity"] postProcess: - map: Asian: Asian Caucasian: White Black: Black Latin: Hispanic Country: selector: //a[@data-test="link_placeOfBirth"][contains(@href, 'country')]/span/text() postProcess: - map: United States: "USA" EyeColor: //span[text()='Eye Color:']/following-sibling::span/a/span/text() Height: selector: //span[text()='Height:']/following-sibling::span/a postProcess: - replace: - regex: \scm with: "" - map: Unknown: "" Measurements: selector: //span[(@data-test='link_span_bra') or (@data-test='link_span_waist') or (@data-test='link_span_hip')] concat: " - " postProcess: - replace: - regex: \sIn with: "" - map: Unknown: "" FakeTits: selector: //span[text()='Boobs:']/following-sibling::span/a postProcess: - map: Unknown: "" Fake: "Yes" Natural: "No" CareerLength: selector: //div[contains(@class,'timeline-horizontal')]//p[@class='m-0'] concat: "-" Aliases: selector: //span[@data-test='link_span_aliases']/text() concat: ", " Tattoos: selector: //span[text()='Tattoo locations:']/following-sibling::span postProcess: - map: Unknown: "" Piercings: selector: //span[text()='Piercing locations:']/following-sibling::span postProcess: - map: Unknown: "" Image: selector: //div[contains(@class,'image-container')]//a/img/@src Gender: fixed: "Female" #Details: //div[@data-test="biography"] DeathDate: selector: //div[contains(text(),'Passed away on')] postProcess: - replace: - regex: Passed away on (.+) at the age of \d+ with: $1 - parseDate: January 2, 2006 HairColor: //span[@data-test="link_span_hair_color"] Weight: selector: //span[@data-test="link_span_weight"] postProcess: - replace: - regex: \skg with: "" # Last Updated January 2, 2024