Как найти определенный код JavaScript в урезанном HTML, используя cheerio с nodejs? - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу найти один код JavaScript / ключевое слово, например zopim или v2.zopim.com во всем сценарии с использованием cheerio на NodeJS.Я написал скрипт, который собирает все ссылки с одного веб-сайта, но скрипт должен открыть все эти захваченные ссылки и искать ключевое слово «zopim» в кодах JavaScript.Я посмотрел репозиторий cheerio , и он выдает , но не повезло.Мне интересно, может кто-нибудь помочь мне разобраться в этой ситуации?Это часть моего кода, где я открываю ссылки и ищу в исходном коде ключевое слово.Я могу опубликовать все это, если это необходимо.

function () {
    //console.log(totalUrls);
    console.log("Crawling is done.")
    if (page == 16) {
        console.log("Anaylzing web sites...");
        async.whilst(
            function () {
                return checkedUrl < totalUrls.length;
            },
            function (urlCallback) {
                var currentUrl = totalUrls[checkedUrl]
                request(currentUrl, function (err, res, body) {
                    if (err) {
                        console.log('Error: ' + err);
                    }
                    var $ = cheerio.load(body);
                    $('.headerContent').each(function () {
                        var title = $(this).find('a').text();
                        console.log(currentUrl + title);// if the current web site has a '.headerContent' class print it.
                        // I want to print only if web site source code includes "zopim" keyword in JavaScript code
                    });
                    checkedUrl++;
                    urlCallback();
                });
            }
        );
    }
}

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете использовать :contains селектор, чтобы найти сценарии, которые содержат ключевое слово 'zopim' в тексте, а затем подсчитать найденные элементы сценария:

const scriptsWithKeywordCount = $('script:contains("zopim")').length;
if (scriptsWithKeywordCount > 0) {
    // webpage contains keyword in javascript code
}
...