M
M
Mors Superberg2018-01-03 17:46:30
JavaScript
Mors Superberg, 2018-01-03 17:46:30

How do you spell phantomjs spider?

I found how to download links from the page, here is an example code:

var sys = require('system');//подключаем модуль system
var page = require('webpage').create();//подключаем модуль webpage
var siteUrl = 'http://kselax.ru/';//урл куда откуда парсим

function exit(code) {//функция для выхода
    setTimeout(function() {
        phantom.exit(code);
    }, 0);
    phantom.onError = function(){};
}

page.open(siteUrl, function(status) {
    // Данный статус указывает, что ссылка открылась
    // успешно и вернулся ответ сервера с кодом 200
    if (status === 'success') {
        //подключаем jQuery
        page.injectJs('/js/jquery.js');//подключаем JQuery
        // Выполняем весь CSS, JS код на странице
        var Links = page.evaluate(function() {
            var links = $('html').find('a');//ищем все линки
            var hrefs = [];//создаем переменную массив

            $.each(links, function(num, item) {//num наверно индекс, а item походу элемент
                var href = $(item).attr('href');
                if (href !== '#') {//если не решетка то добавляем в массив
                    hrefs.push(href);//вставляем в массив
                }
            });

            return hrefs;//возвращаем массив, он запишется в
            //переменную Links
        });

        // Вывод результата через обычный console.log
        console.log(JSON.stringify(Links));
    }

    // Закрываем PhantomJS
    exit();
});

Help improve the algorithm, how to make all links unique added to the array, i.e. we pulled out all the links and start pulling them out from all the resources that we found, and so on, by recursion, limited, for example, no more than 30 by link nesting. How to do it, thanks!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
J
JackShcherbakov, 2018-01-03
@JackShcherbakov

To assemble unique values, you need a Set. It only stores unique values ​​and ignores the rest. MDN - https://developer.mozilla.org/en/docs/Web/JavaScri...

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question