diff --git a/scrape.js b/scrape.js index 8afd3dc..0d14f6b 100644 --- a/scrape.js +++ b/scrape.js @@ -14,24 +14,33 @@ const scrapeInstance = async (link, page) => { const totalStudentsHTML = await totalStudentsElem.getProperty('innerHTML'); const totalStudents = parseInt(await totalStudentsHTML.jsonValue()); - const droppedElem = await page.$('.instance-student-detail .dropped'); - const droppedHTML = await droppedElem.getProperty('innerHTML'); - const dropped = parseInt(await droppedHTML.jsonValue()) - - const outcomes90elem = await page.$('.full-time-90-days-actuals') - const outcomes90HTML = await outcomes90elem.getProperty('innerHTML'); - const outcomes90 = await outcomes90HTML.jsonValue(); - const outcomes90Numeric = parseInt(outcomes90.split(' ')[0]) - const outcomes90Percent = outcomes90.split(' ')[1].replace(/[()]/g, '') - - const instanceID = parseInt(page.url().match(/[0-9]*$/g)[0]) + if(totalStudents > 0){ + + const h3elem = await page.$('h3'); + const h3HTML = await h3elem.getProperty('innerHTML'); + const h3Value = await h3HTML.jsonValue() + const course = h3Value.match(/(?<=\()[0-9A-Za-z\-]*(?=\))/g)[0] + + const droppedElem = await page.$('.instance-student-detail .dropped'); + const droppedHTML = await droppedElem.getProperty('innerHTML'); + const dropped = parseInt(await droppedHTML.jsonValue()) + + const outcomes90elem = await page.$('.full-time-90-days-actuals') + const outcomes90HTML = await outcomes90elem.getProperty('innerHTML'); + const outcomes90 = await outcomes90HTML.jsonValue(); + const outcomes90Numeric = parseInt(outcomes90.split(' ')[0]) + const outcomes90Percent = outcomes90.split(' ')[1].replace(/[()]/g, '') - const graduationElem = await page.$('.course-header__detail') - const graduationHTML = await graduationElem.getProperty('innerHTML'); - const instanceHeaderText = await graduationHTML.jsonValue() - const graduationDate = instanceHeaderText.split(' - ')[1].trim(); + const instanceID = parseInt(page.url().match(/[0-9]*$/g)[0]) - console.log({ instanceID, graduationDate, totalStudents, dropped, outcomes90Numeric, outcomes90Percent }); + const graduationElem = await page.$('.course-header__detail') + const graduationHTML = await graduationElem.getProperty('innerHTML'); + const instanceHeaderText = await graduationHTML.jsonValue() + const graduationDate = instanceHeaderText.split(' - ')[1].trim(); + + console.log({ instanceID, course, graduationDate, totalStudents, dropped, outcomes90Numeric, outcomes90Percent }); + + } return page.goBack(); }