-
-
Save epk2112/97b6606f95f405f7add532e99569fa59 to your computer and use it in GitHub Desktop.
Puppeteer / Node.js Automation & Web Scraping Tutorial from YouTube
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// in a new folder be sure to run "npm init -y" and "npm install puppeteer" | |
const puppeteer = require("puppeteer") | |
const fs = require("fs/promises") | |
async function start() { | |
const browser = await puppeteer.launch() | |
const page = await browser.newPage() | |
await page.goto("https://learnwebcode.github.io/practice-requests/") | |
const names = await page.evaluate(() => { | |
return Array.from(document.querySelectorAll(".info strong")).map(x => x.textContent) | |
}) | |
await fs.writeFile("names.txt", names.join("\r\n")) | |
await page.click("#clickme") | |
const clickedData = await page.$eval("#data", el => el.textContent) | |
console.log(clickedData) | |
const photos = await page.$$eval("img", imgs => { | |
return imgs.map(x => x.src) | |
}) | |
await page.type("#ourfield", "blue") | |
await Promise.all([page.click("#ourform button"), page.waitForNavigation()]) | |
const info = await page.$eval("#message", el => el.textContent) | |
console.log(info) | |
for (const photo of photos) { | |
const imagepage = await page.goto(photo) | |
await fs.writeFile(photo.split("/").pop(), await imagepage.buffer()) | |
} | |
await browser.close() | |
} | |
start() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment