tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

search.js (1342B)


      1 /**
      2 * @license
      3 * Copyright 2017 Google Inc.
      4 * SPDX-License-Identifier: Apache-2.0
      5 */
      6 
      7 /**
      8 * @fileoverview Search developers.google.com/web for articles tagged
      9 * "Headless Chrome" and scrape results from the results page.
     10 */
     11 
     12 'use strict';
     13 
     14 const puppeteer = require('puppeteer');
     15 
     16 (async () => {
     17  const browser = await puppeteer.launch();
     18  const page = await browser.newPage();
     19 
     20  await page.goto('https://developers.google.com/web/');
     21 
     22  // Type into search box.
     23  await page.type('.devsite-search-field', 'Headless Chrome');
     24 
     25  // Wait for suggest overlay to appear and click "show all results".
     26  const allResultsSelector = '.devsite-suggest-all-results';
     27  await page.waitForSelector(allResultsSelector);
     28  await page.click(allResultsSelector);
     29 
     30  // Wait for the results page to load and display the results.
     31  const resultsSelector = '.gsc-table-result a.gs-title[href]';
     32  await page.waitForSelector(resultsSelector);
     33 
     34  // Extract the results from the page.
     35  const links = await page.evaluate(resultsSelector => {
     36    const anchors = Array.from(document.querySelectorAll(resultsSelector));
     37    return anchors.map(anchor => {
     38      const title = anchor.textContent.split('|')[0].trim();
     39      return `${title} - ${anchor.href}`;
     40    });
     41  }, resultsSelector);
     42  console.log(links.join('\n'));
     43 
     44  await browser.close();
     45 })();