name: Tenshigao sceneByURL: - action: scrapeXPath url: - tenshigao.com scraper: sceneScraper performerByURL: - action: scrapeXPath url: - tenshigao.com scraper: performerScraper sceneByName: action: scrapeXPath queryURL: https://tenshigao.com/?s={} scraper: sceneSearch sceneByQueryFragment: action: scrapeXPath queryURL: "{url}" scraper: sceneScraper xPathScrapers: sceneScraper: common: $model: //div[@class="model-thumb"] scene: Title: selector: //span[@class="mroundedthumbs"]//@alt Date: selector: //div[@class="video-date"]/text() postProcess: - replace: - regex: (\d+)(st|nd|rd|th) with: "$1" - parseDate: January 02, 2006 Performers: Name: $model//h5 URL: $model//h5/a/@href Tags: Name: //div[@class="cat"]/a Details: selector: //p[span[@class="readmore"]] postProcess: - replace: - regex: ... Read More with: URL: //link[@rel="canonical"]/@href Image: selector: //video[@id="videohtml5tour"]/@poster postProcess: - replace: - regex: ^// with: "https://" Studio: Name: fixed: Tenshigao performerScraper: common: $profile: //div[@class="model-profile"] performer: Name: selector: $profile[contains(strong, "Name:")]//text() postProcess: - replace: - regex: .*Name:\s*(.*)\s*$ with: $1 - regex: None with: Aliases: selector: $profile[contains(strong, "Japanese name:")]//text() postProcess: - replace: - regex: .*Japanese name:\s*(.*)\s*$ with: $1 - regex: None with: Birthdate: selector: $profile[contains(strong, "Birth date:")]//text() postProcess: - replace: - regex: .*Birth date:\s*(.*)\s*$ with: $1 - parseDate: January 2, 2006 - parseDate: 2006-01-02 Measurements: selector: $profile[contains(strong, "Body:")]//text() postProcess: - replace: - regex: .*Body:\s*(.*)\s*$ with: $1 - regex: B(\d*)-W(\d*)-H(\d*) with: $1-$2-$3 - regex: -- with: - regex: None with: Weight: selector: $profile[contains(strong, "Weight:")]//text() postProcess: - replace: - regex: .*Weight:\s*(.*)\s*$ with: $1 - regex: (\d+)kg with: $1 - regex: None with: Height: selector: $profile[contains(strong, "Height:")]//text() postProcess: - replace: - regex: .*Height:\s*(.*)\s*$ with: $1 - regex: (\d+)cm.* with: $1 - regex: None with: Details: selector: //p[span[@class="readmore"]] | //div[@class="intro"]/p postProcess: - replace: - regex: ... Read More with: Piercings: selector: $profile[contains(strong, "Piercings:")]//text() postProcess: - replace: - regex: .*Piercings:\s*(.*)\s*$ with: $1 - regex: None|^No$|No Piercing.* with: Tattoos: selector: $profile[contains(strong, "Tattoo:")]//text() postProcess: - replace: - regex: .*Tattoo:\s*(.*)\s*$ with: $1 - regex: None|^No$|No Tattoo.* with: HairColor: selector: $profile[contains(strong, "Hair color:")]//text() postProcess: - replace: - regex: (?i).*hair color:?\s*(.*)\s*$ with: $1 - regex: None with: Country: fixed: Japan Ethnicity: fixed: Asian Gender: fixed: Female URL: //link[@rel="canonical"][1]/@href Image: selector: //img[@class="smallroundedthumbs"]/@src postProcess: - replace: - regex: ^// with: https:// - regex: 160x160 with: 500x500 sceneSearch: common: $videos: //div[@class="thumb"]/a scene: Title: $videos/@title URL: $videos/@href Image: $videos/img/@src Studio: Name: fixed: Tenshigao # Last Updated November 07, 2023