Вот как выглядит код:
(async () => {
let brands = [ "audi", "bentley", "bmw","chery","chevrolet","chrysler", "citroen", "dacia", "daihatsu","ds-automobiles","fiat", "ford", "geely", "honda", "hyundai", "jaguar", "kia", "lada", "lamborghini", "lancia", "mazda","mercedes-benz", "mini", "mitsubishi", "nissan", "opel", "peugeot", "porsche", "proton", "renault", "seat", "skoda", "smart", "suzuki", "tata", "toyota", "volkswagen", "volvo"]
let links = []
const browser = await playwright["webkit"].launch({headless: false});
const context = await browser.newContext();
try{
res = []
url = "https://secure.sahibinden.com/giris";
console.log(url);
page = await context.newPage();
await page.goto(url, {waitUntil: 'load', timeout: 0});
//await page.content();
await page.type('input[name=username]', 'email')
await page.type('input[name=password]', 'pass')
await Promise.all([
page.click("button[type=button]"),
page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);
count = 0
for(let brand of brands){
console.log(count);
console.log(brand);
try{
await page.goto("https://www.sahibinden.com/"+brand+"?date=1day&a5_min=2005&pagingSize=50&a5_max=2020", {waitUntil: 'load', timeout: 0});
await page.content();
links = await page.evaluate(() => Array.from(document.querySelectorAll('.classifiedTitle'), element => element.href));
for (let url of links){
let res = [];
await page.goto(url, {waitUntil: 'load', timeout: 20000});
await page.content();
title = await page.evaluate(() => Array.from(document.querySelectorAll('.classifiedDetailTitle>h1'), element => element.textContent));
price = await page.evaluate(() => (document.querySelectorAll('.classifiedInfo >h3'), element => element.textContent));
info = await page.$$eval(".classifiedInfoList", paragraphs => paragraphs.map(p => p.innerText.trim()));
//info = info.split("")
features = await page.evaluate(() => Array.from(document.querySelectorAll('.selected'), element => element.textContent));
console.log(url);
count = count+1
}
}
catch(err){console.log(err);
page.close();
page = await context.newPage(); }
}
}
catch(err){
throw err;
}
//browser.close();
})();
Этот код сначала регистрирует вас на сайте, а затем начинает удалять элементы один за другим. Проблема в том, что через некоторое время самая внутренняя для l oop страница застревает. Он загружается полностью, но не вызывает ни ошибки, ни исключения. Мне нужно вручную обновить sh его, чтобы он снова заработал.