一、打开终端 输入 yarn init -y
    在package.json文件中输入

    1. "scripts": {
    2. "start": "nodemon index.js"
    3. }

    image.png
    yarn add koa puppeteer
    yarn add koa-router
    yarn add koa2-cors
    新建一个index.js文件

    1. const run = require('./reptile/db');
    2. const koa = require("koa");
    3. const Router = require('koa-router');
    4. const router = new Router();
    5. var cors = require('koa2-cors');
    6. const app = new koa();
    7. router.get("/candy",async ctx=>{
    8. var data = await run();
    9. ctx.body = data;
    10. })
    11. app.use(cors());
    12. app.use(router.routes())
    13. app.listen(8080)

    新建一个index.html文件

    1. <title>Document</title>
    2. <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    3. </head>
    4. <body>
    5. <script>
    6. var url = "http://loaclhost:8080/candy";
    7. $.ajax({
    8. url,
    9. success:res=>{
    10. console.log(res)
    11. }
    12. })
    13. </script>

    新建一个reptile文件夹 db.js文件

    const puppeteer = require("puppeteer");
    const url ="https://www.duitang.com/"
    async function run(){
        const broswer = await puppeteer.launch();
        const page = await broswer.newPage();
        await page.goto(url,{
            waitUntil:'networkidle2'
        })
        await page.waitFor(2000)
        await page.hover(".dynamic-feed-item")
        let res = await page.evaluate(()=>{
            var $ = window.jQuery;
            var items = $(".dynamic-feed-item");
            var links = [];
            if(items.length>0){
                items.each((index,item)=>{
                    var imgUrl = $(item).find(".user-info img").attr("src");
                    var title = $(item).find(".user-desc .username").text(); 
                    var time = $(item).find(".user-desc .publish-time").text(); 
                    var source = $(item).find(".dynamic-album-desc").text();
                    var cmt = $(item).find(".favorite-action .detail-text").text();
                    var image = $(item).find(".dynamic-multi-img-container img");
                    var image = [...image];
                    var images = image.map(i=>{
                        return $(i).attr("src")
                    })
                    console.log(image)
                    links.push({
                        title,
                        source,
                        time,
                        cmt,
                        imgUrl,
                        images
                    }) 
                })
    
            }
            return links
        })
        broswer.close();
        return res;
    
    }
    module.exports = run
    

    终端yarn start