205 lines
6.1 KiB
YAML
205 lines
6.1 KiB
YAML
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
|