【发布时间】:2019-06-30 00:37:52
【问题描述】:
【问题讨论】:
标签: javascript node.js web-crawler puppeteer
【问题讨论】:
标签: javascript node.js web-crawler puppeteer
有一些方法可以将此部分滚动到底部:
'use strict';
const puppeteer = require('puppeteer');
(async function main() {
try {
const browser = await puppeteer.launch({
headless: false,
args: ['--start-maximized'],
});
const [page] = await browser.pages();
await page.setViewport({ width: 1280, height: 600 });
await page.goto('https://nodejs.org/api/');
await page.evaluate(() => {
const container = document.querySelector('#column2');
container.scrollTop = container.scrollHeight;
});
await page.waitFor(3000);
await page.goto('https://nodejs.org/api/');
await page.evaluate(() => {
const container = document.querySelector('#column2');
container.scroll(0, container.scrollHeight);
});
await page.waitFor(3000);
await page.goto('https://nodejs.org/api/');
await page.evaluate(() => {
const container = document.querySelector('#column2');
container.scrollBy(0, container.scrollHeight);
});
await page.waitFor(3000);
await page.goto('https://nodejs.org/api/');
await page.evaluate(() => {
const container = document.querySelector('#column2');
container.scrollTo(0, container.scrollHeight);
});
await page.waitFor(3000);
await page.goto('https://nodejs.org/api/');
await page.evaluate(() => {
const lastElementInContainer = [...document.querySelectorAll('#column2 li')].pop();
lastElementInContainer.scrollIntoView();
});
} catch (err) {
console.error(err);
}
})();
【讨论】:
scroll,scrollBy,scrollTo有什么区别。我只是在浏览文档,我真的什么都没看到? developer.mozilla.org/en-US/docs/Web/API/ScrollToOptions
scrollBy() 相对使用选项(从当前位置滚动一定量),scroll() 和 scrollTo() have the same effect 并绝对使用选项(从任何位置滚动到绝对坐标)。