Add try/catch to generator

This commit is contained in:
=
2020-09-14 14:54:39 -07:00
parent 8031f6f8a3
commit ade3eb307d

View File

@@ -178,32 +178,36 @@ class OlxCrawler {
} }
async *categoryIndexer(adCategory) { async *categoryIndexer(adCategory) {
let pageToIndex = 1; try {
let pageToIndex = 1;
const urlAdTypePart = OLX_ENUMS.OLX_AD_TYPE[this.crawlerAdTypes]; const urlAdTypePart = OLX_ENUMS.OLX_AD_TYPE[this.crawlerAdTypes];
const urlCategoryPart = OLX_ENUMS.OLX_AD_CATEGORY[adCategory]; const urlCategoryPart = OLX_ENUMS.OLX_AD_CATEGORY[adCategory];
if (urlAdTypePart !== undefined && urlCategoryPart !== undefined) { if (urlAdTypePart !== undefined && urlCategoryPart !== undefined) {
while (true) { while (true) {
const urlPageToCrawl = `${this.baseUrl}${urlAdTypePart}${urlCategoryPart}&stranica=${pageToIndex}`; const urlPageToCrawl = `${this.baseUrl}${urlAdTypePart}${urlCategoryPart}&stranica=${pageToIndex}`;
const singlePageResults = await this.indexSinglePage( const singlePageResults = await this.indexSinglePage(
urlPageToCrawl, urlPageToCrawl,
this.maxResultsPerPage this.maxResultsPerPage
); );
await this.sleep(this.delayBetweenPages); await this.sleep(this.delayBetweenPages);
if (Array.isArray(singlePageResults) && singlePageResults.length > 0) { if (Array.isArray(singlePageResults) && singlePageResults.length > 0) {
yield singlePageResults; yield singlePageResults;
} else { } else {
return undefined; return undefined;
} }
++pageToIndex; ++pageToIndex;
if (pageToIndex === this.maxPages) { if (pageToIndex === this.maxPages) {
return undefined; return undefined;
}
} }
} else {
return undefined;
} }
} else { } catch (e) {
return undefined; console.log('Error inside generator: ', e);
} }
} }