我正在从 RockAuto 抓取数据,但是单击href element.querySelector('div.nchildren')
后出现问题。
它选择单击后收到的元素,但下一行:let temp_dt = document.querySelectorAll('div.nchildren div.ranavnode');
不会选择其中的所有元素。
我的代码:
// get hotel details
let data = await page.evaluate(() => {
let hotels = [];
// get the hotel elements
let dataAll = document.querySelectorAll('div.ranavnode');
// get the hotel data
dataAll.forEach((element) => {
let hotelJson = {};
try {
let cat_name = element.querySelector('a.navlabellink').innerText;
let click_link = element.querySelector('a.navlabellink');
if (cat_name === "ACURA") {
hotelJson.cat_name = cat_name;
click_link.click();
hotels.push(hotelJson);
if (element.querySelector('div.nchildren')) {
try {
let temp_dt = document.querySelectorAll('div.nchildren div.ranavnode'); // this line can not work correctly
hotelJson.count = temp_dt.length;
} catch (e) {
}
}
}
}
catch (exception) {
}
// hotels.push(hotelJson);
});
return hotels;
});
console.dir(data);