Improved q so missing date element returns null.

This commit is contained in:
ThePendulum 2020-01-25 01:46:58 +01:00
parent 3891a6e86b
commit ab82329171
2 changed files with 16 additions and 9 deletions

View File

@ -339,13 +339,18 @@ async function scrapeActors(actorNames) {
const sources = argv.sources ? argv.sources.map(source => [source, scrapers.actors[source]]) : Object.entries(scrapers.actors);
const profiles = await Promise.map(sources, async ([scraperSlug, scraper]) => {
const profile = await scraper.fetchProfile(actorEntry ? actorEntry.name : actorName);
try {
const profile = await scraper.fetchProfile(actorEntry ? actorEntry.name : actorName);
return {
...profile,
name: actorName,
scraper: scraperSlug,
};
return {
...profile,
name: actorName,
scraper: scraperSlug,
};
} catch (error) {
console.log(scraperSlug, error);
return null;
}
});
const profile = await mergeProfiles(profiles, actorEntry);

View File

@ -7,9 +7,9 @@ function q(context, selector, attrArg, trim = true) {
const attr = attrArg === true ? 'textContent' : attrArg;
if (attr) {
const value = context.querySelector(selector)[attr];
const value = context.querySelector(selector)?.[attr];
return trim ? value.trim() : value;
return trim ? value?.trim() : value;
}
return context.querySelector(selector);
@ -26,7 +26,9 @@ function qall(context, selector, attrArg, trim = true) {
}
function qdate(context, selector, format, match, attr = 'textContent') {
const dateString = context.querySelector(selector)[attr];
const dateString = context.querySelector(selector)?.[attr];
if (!dateString) return null;
if (match) {
const dateStamp = dateString.match(match);