Веб-страница застревает в "Драматурге" - PullRequest
0 голосов
/ 04 августа 2020

Вот как выглядит код:

(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 его, чтобы он снова заработал.

...