Я бы сказал, что Cheerio - это не то, что вам нужно. Более подходящим также является Puppeteer , так как вам нужно что-то, что не только анализирует html, но также имеет языковой движок, чтобы вы могли взаимодействовать на скрипте страницы, не делая злых дел, таких как eval
:
import { Browser, launch, Page, Response } from "puppeteer";
export class JsVarService {
private browser!: Browser;
private page!: Page;
constructor(private url: string) {}
public async getVarValue(varName: string): Promise<string> {
await this.getResponse();
const results = <string>await this.page.evaluate(`window["${varName}"]`);
await this.close();
return results;
}
private async getResponse(): Promise<Response | null> {
this.browser = await launch();
this.page = await this.browser.newPage();
return this.page.goto(this.url);
}
private async close(): Promise<void> {
this.browser.disconnect();
}
}
async function run(): Promise<void> {
const url = "https://tabuademares.com/br/espirito-santo/vitoria";
const varName = "JS_WCACHE_CK";
const service = new JsVarService(url);
console.log(await service.getVarValue(varName));
}
run().catch(e => { throw new Error(e) });