Укажите результаты массива, отображаемые в одной строке вместо отдельных строк - PullRequest
0 голосов
/ 01 мая 2020

Я тестирую веб-скребок Apify и могу видеть результаты, но они отображаются в одной строке. Я перебираю содержимое, чтобы получить заголовки с этой страницы - ... и помещаю его в массив и, наконец, возвращаю массив. Я хотел бы, чтобы названия возвращались в отдельных строках. Был бы очень признателен, если бы кто-то мог указать мне правильное направление.

Вот моя функция страницы:

async function pageFunction(context) {
    // jQuery is handy for finding DOM elements and extracting data from them.
    // To use it, make sure to enable the "Inject jQuery" option.
    const $ = context.jQuery;
    var results = [];
    $('.ms-srch-group-content').each(function(){
        results.push({
            title: $(this).find('.ms-srch-item-link').text().trim(),
            date: $(this).find('.soi-news-attributes').text().trim(),
        });
    });
    return results;
}

Вот результат: ...

Как вы можете см. на скриншоте результатов все заголовки отображаются в одной строке.

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Проблема здесь в том, что вы пытаетесь перебрать сам элемент, в то время как то, что вы пытаетесь достичь, потребует перехода на один уровень вниз.

При этом вам нужно будет только измените .ms-srch-group-content на .ms-srch-group-content > div[name=Item], и все будет работать как положено.

0 голосов
/ 01 мая 2020

Похоже, что .ms-srch-group-content является селектором для группового контента, поэтому вы получаете одну запись, а не массив. Я думаю, вам нужно перейти к следующему div - .ms-srch-item

$('.ms-srch-item').each(function(){
...