我目前正在使用request-promise
npm模块在我的网站上抓取网址列表。
这很好地满足了我的需求,但是,我注意到并不是所有的div都出现了,因为有些是在JS事实之后渲染的。我知道我无法远程运行该JS代码来强制渲染,但是有什么方法只有在添加了这些元素之后才能刮取页面?
我目前正在使用Node进行此操作,如果可能的话,我希望继续使用Node。
这是我所拥有的:
const urls ['fake.com/link-1', 'fake.com/link-2', 'fake.com/link-3']
urls.forEach(url => {
request(url)
.then(function(html){
//get dummy dom
const d_dom = new JSDOM(html);
....
}
});
关于如何实现此目标的任何想法?或者,如果目前有Selenium作为npm模块的替代方案?
答案 0 :(得分:2)
您将要使用puppeteer这是一款Chrome无头浏览器(由Chrome / Google拥有并维护),用于加载和解析动态网页。
使用null
转到特定页面,然后使用page.content()从呈现的页面加载html内容。
以下是使用方法的示例:
page.goto()