使用puppeteer抓取网站数据
【摘要】
记一下使用puppeteer抓取开源中国上的推荐软件数据
1.安装 npm install puppeteer
2.引入
const puppeteer = require('puppeteer');
3.抓取代码
const sleep = time => new Promise(resolve => { setTimeo...
记一下使用puppeteer抓取开源中国上的推荐软件数据
1.安装
npm install puppeteer
2.引入
const puppeteer = require('puppeteer');
3.抓取代码
const sleep = time => new Promise(resolve => {
setTimeout(resolve, time);
})
const url = `https://h5.oschina.net`;
;(async () => {
console.log('Start visit');
const brower = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'],
dumpio: false
});
const page = await brower.newPage() // 开启一个新页面
await page.goto(url, {
waitUntil: 'networkidle2' // 网络空闲说明已加载完毕
});
//加载jQuery
await page
.mainFrame()
.addScriptTag({
url: 'https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js'
})
await sleep(1000);
// 编辑推荐内容
await page.waitForSelector('.osc-list');
// 结果
const result = await page.evaluate(() => {
//获取的数据数组
let dataTemp = [];
let articles = $('.project-item');
for (let i = 0; i < articles.length; i++) {
let article = articles[i];
let descDoms = $(article).find('.osc-cell__title');
let name = descDoms.find('.project-item__name').text();
let title = descDoms.find('.project-item__desc').text();
let desc = descDoms.find('.content').text();
let ident = title.toLowerCase();
dataTemp.push({
name: name,
title: title,
desc: desc,
ident: ident
});
}
return dataTemp;
});
// 关闭浏览器
brower.close();
console.log(result);
})();
3.运行 node app.js
文章来源: blog.csdn.net,作者:薛定喵君,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jsxg2009/article/details/115244299
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)