使用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)