#javascript #typescript #puppeteer #deno
Вопрос:
Я строю гусеничный движок для платформы разведки, которую я строю (https://github.com/yugely/Pelican). У меня работает функция выборки, но я понял, что мне нужен кукловод, чтобы делать больше, чем выборка, учитывая использование JS.
Я использую mac OSX Big Sur 11.6
Код: он начинается в файле mod.ts, куда он переходит:
дирижер.тс
export async function conduct_crawl(gen_object:GenerationalObject){
try {
let object_exists = await r_client.hexists(gen_object.gen_key.origin_timestamp, gen_object.gen_key.url.href)
if(object_exists === 0) {
console.log(gen_object.gen_key.url.href)
//limit(() =>
http_call(gen_object)//****here******
.then(crawl)
.then(book_crawl)
.catch(function (error) {
console.error(error)
})
//)
}
}catch(error){
console.error(gen_object)
console.error(error)
let funnel_point = "conductor.ts"
let funk = "conduct_cat"
}
}
Проводник вызывает метод http-вызова в файле radio_flyer.ts, который выглядит следующим образом
export async function http_call(gen_object:GenerationalObject):Promise<GenerationalObject> {
return new Promise(async function (resolve, reject) {
if (gen_object.gen_key !== undefined) {
try {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(gen_object.gen_key.url.href);
const html = await page.content();
if(html.length > 0) {
gen_object.relational_object.response_content.response_text = html
gen_object.gen_key.can_cat = true
gen_object.gen_key.catalogue_key.status = StatusEnum.ACTIVE
resolve(gen_object)
}
} catch(error) {
reject(error)
}
}
})
}
Когда я выполняю команду
$ deno run -A --unstable mod.ts
Я получаю следующую ошибку:
PermissionDenied: Permission denied (os error 13)
at Object.opSync (deno:core/01_core.js:138:12)
at opRun (deno:runtime/js/40_process.js:27:17)
at Object.run (deno:runtime/js/40_process.js:114:17)
at BrowserRunner.start (https://deno.land/x/puppeteer@9.0.2/src/deno/BrowserRunner.ts:63:22)
at ChromeLauncher.launch (https://deno.land/x/puppeteer@9.0.2/src/deno/Launcher.ts:108:12)
at async file:///path/to/radio_flyer.ts:30:45
I can’t find out why I would have this. I am using a Deno port.
https://deno.land/x/puppeteer@9.0.2
Any help or suggestions are appreciated.