const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false}); // default is true
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
await browser.close();
})();
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const hrefElement = await page.$('a');
await hrefElement.click();
// ...
})();
page.$()
는 document.querySelector()의 역할을 한다.
page.$$()
는 document.querySelectorAll()과 같다
await Promise.all(records.map(async (r, i) => {
result[i] = r;
const page = await browser.newPage();
await page.goto(r[1]);
const scoreEl = await page.$('.score.score_left .star_score');
if (scoreEl) {
const text = await page.evaluate(element => element.textContent, scoreEl);
console.log(r[0], '평점', text.trim());
result[i][2] = text.trim();
}
await page.waitFor(3000);
await page.close();
}));
const parse = require('csv-parse/lib/sync');
const stringify = require('csv-stringify/lib/sync');
const fs = require('fs');
const puppeteer = require('puppeteer');
const csv = fs.readFileSync('csv/data.csv');
const records = parse(csv.toString('utf-8'));
const crawler = async () => {
const browser = await puppeteer.launch({ headless: false }); // TODO: headless 옵션 의미 알려주기
const page = await browser.newPage();
await page.goto(records[0][1]);
console.log(await page.content());
await page.close();
await browser.close();
};
crawler();
await page.waitFor(3000);
3초만큼 동작 기다리기