make sure to remove empty fields when scraping website data

This commit is contained in:
buzzcode2007 2024-04-05 09:50:34 +08:00
parent 0595f389e8
commit 37a85f2841

View file

@ -28,22 +28,28 @@ export default class reader {
if (field_current) { if (field_current) {
// Check if array. // Check if array.
if (Array.isArray(field_current)) { if (Array.isArray(field_current)) {
// Temporarily create an empty list.
field_data[field_names[field_index]] = []; field_data[field_names[field_index]] = [];
if (typeof field_current[0] === "object" && field_current[0] != null && field_current[0]) { if (typeof field_current[0] === "object" && field_current[0] != null && field_current[0]) {
field_data[field_names[field_index]].push(read(field_current[0])); field_data[field_names[field_index]].push(read(field_current[0]));
} else { } else {
let matching_elements = (document.querySelectorAll(field_current[0])); let matching_elements = (document.querySelectorAll(field_current[0]));
for (let field_current_index = 0; field_current_index < matching_elements.length; field_current_index++) { for (let field_current_index = 0; field_current_index < matching_elements.length; field_current_index++) {
field_data[field_names[field_index]].push(matching_elements[field_current_index].innerText); field_data[field_names[field_index]].push(matching_elements[field_current_index].innerText);
}; };
}; };
// Must cease to exist if it was just empty anyway.
if ((field_data[field_names[field_index]]).length <= 0) {
delete field_data[field_names[field_index]];
}
} else if (typeof field_current === "object" && field_current != null && field_current) { } else if (typeof field_current === "object" && field_current != null && field_current) {
field_data[field_names[field_index]] = read(field_current); field_data[field_names[field_index]] = read(field_current);
} else { } else {
field_data[field_names[field_index]] = (document.querySelector(field_current)) ? document.querySelector(field_current).innerText : null; if (document.querySelector(field_current)) {
field_data[field_names[field_index]] = document.querySelector(field_current).innerText;
}
}; };
}; };
}; };