summaryrefslogtreecommitdiff
path: root/src/scraper/scrape.js
blob: 131ae40ee2d9f0150c708fb63775979cbeea5749 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const puppeteer = require('puppeteer');
const mongodb = require('mongodb')

// Specifically for scraping
// Stores in database once finished scraping
// query is the search string (title of movie or show) and the type (music, show, movie)
// will be used

async function performSearch(query, type) {
  const browser = await puppeteer.launch({
    headless: true
  });
  const pages = await browser.pages();
  const page = pages[0];
  await page.goto('https://google.com');
  const searchBox = await page.$x("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input");
  await searchBox[0].type(`${query} streaming`);
  await page.keyboard.press('Enter');
  await page.waitForNavigation();
  const resultsContainer = await page.$$('.r0VsPb')
  var streamingPlatforms;
  var streamingPrices;
  for (let i = 0; i < resultsContainer.length; i++) {
    streamingPlatforms = await resultsContainer[i].$$eval('.i3LlFf', nodes => nodes.map(n => n.innerText)); 
    streamingPrices = await resultsContainer[i].$$eval('.V8xno', nodes => nodes.map(n => n.innerText))
  }
  console.log(streamingPlatforms);
  console.log(streamingPrices);
  // do the database storage
  await browser.close();
}

// performSearch('spongebob', 'tv');