使用puppeteer抓取网站数据

举报
薛定喵君 发表于 2021/06/03 23:05:44 2021/06/03
4.7k+ 0 0
【摘要】 记一下使用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

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。