Цикл с JS для получения информации из списка HTML в консоли Chrome

0

Я пытаюсь получить данные о сделках с недвижимостью с сайта с помощью Javascript в консоли Google Chrome.

Пока что я выяснил, как получить информацию в объекте свойства для первого свойства, используя этот код:

var property = [{}]

property[0]['Name']  = document.querySelector("#closed-deals-container > section > div > div.profile-recent-transactions.profile-recent-transactions--paginated > div:nth-child(1) > div > div.uc-listingCard-body > div.uc-listingCard-content > div > div.uc-listingCard-titles > a").innerText;

property[0]['City-State-Zip'] = document.querySelector("#closed-deals-container > section > div > div.profile-recent-transactions.profile-recent-transactions--paginated > div:nth-child(1) > div > div.uc-listingCard-body > div.uc-listingCard-content > div > div.uc-listingCard-titles > h2").innerText;

property[0]['Price'] = document.querySelector("#closed-deals-container > section > div > div.profile-recent-transactions.profile-recent-transactions--paginated > div:nth-child(1) > div > div.uc-listingCard-body > div.uc-listingCard-content > div > div.uc-listingCard--priceGrid-sm > div").innerText;

property[0]['Beds'] = document.querySelector("#closed-deals-container > section > div > div.profile-recent-transactions.profile-recent-transactions--paginated > div:nth-child(1) > div > div.uc-listingCard-body > div.uc-listingCard-content > div > div.uc-listingCard-subStats.checkable-undefined > div.uc-listingCard-subStat.uc-listingCard-subStat--beds").innerText;

property[0]['Baths'] = document.querySelector("#closed-deals-container > section > div > div.profile-recent-transactions.profile-recent-transactions--paginated > div:nth-child(1) > div > div.uc-listingCard-body > div.uc-listingCard-content > div > div.uc-listingCard-subStats.checkable-undefined > div.uc-listingCard-subStat.uc-listingCard-subStat--baths").innerText;

В списке 26 других свойств, и я хотел бы перебрать их все и поместить в объект свойства. Я думаю, мне нужно выполнить цикл for, но мне сложно понять, как его выполнить.

ОБНОВИТЬ:

Приведенный ниже код решил большую часть проблемы, но мне не удается получить все транзакции, поскольку многие из них разбиты на страницы. См. Здесь пример, где на странице есть 14 вкладок транзакций. Как я могу получить их все, расширив приведенный ниже код?

const list = [];

jQuery('div.uc-listingCard-content').each(function () {
const $this = jQuery(this);

list.push({
    'Name': $this.find('.uc-listingCard-titles > a').text().trim(),
    'City-State-Zip': $this.find('.uc-listingCard-titles > h2').text().trim(),
    'Price': $this.find('.uc-listingCard--priceGrid-sm > div').text().trim(),
    'Beds': $this.find('.uc-listingCard-subStat--beds').text().trim(),
    'Baths': $this.find('.uc-listingCard-subStat--baths').text().trim(),
});

});

console.log (список);

1

вы можете использовать console.log с помощью JSON.stringify (), например:

console.log(JSON.stringify({ x: 5, y: 6 }));
// expected output: "{"x":5,"y":6}"

и для вашего кода:

console.log(JSON.stringify(property))
1

Вы можете написать что-то подобное с помощью jQuery.

const list = [];

jQuery('div.uc-listingCard-content').each(function () {
    const $this = jQuery(this);

    list.push({
        'Name': $this.find('.uc-listingCard-titles > a').text().trim(),
        'City-State-Zip': $this.find('.uc-listingCard-titles > h2').text().trim(),
        'Price': $this.find('.uc-listingCard--priceGrid-sm > div').text().trim(),
        'Beds': $this.find('.uc-listingCard-subStat--beds').text().trim(),
        'Baths': $this.find('.uc-listingCard-subStat--baths').text().trim(),
    });

});

console.log(list);
1
  • Это сработало хорошо, но теперь я понимаю, что не могу добавлять транзакции из разных вкладок транзакций на странице. См. Пример здесь: compass.com/agents/eric-altree Есть 14 страниц «Прошедших транзакций», и мне интересно, как извлечь их все (а не только те, что на странице 1). 2 дня назад