3 * Copyright 2017 Google Inc.
4 * SPDX-License-Identifier: Apache-2.0
8 * @fileoverview Search developers.google.com/web for articles tagged
9 * "Headless Chrome" and scrape results from the results page.
14 const puppeteer
= require('puppeteer');
17 const browser
= await puppeteer
.launch();
18 const page
= await browser
.newPage();
20 await page
.goto('https://developers.google.com/web/');
22 // Type into search box.
23 await page
.type('.devsite-search-field', 'Headless Chrome');
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
);
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
);
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}`;
42 console
.log(links
.join('\n'));
44 await browser
.close();