一、打开终端 输入 yarn init -y
在package.json文件中输入
"scripts": {
"start": "nodemon index.js"
}
yarn add koa puppeteer
yarn add koa-router
yarn add koa2-cors
新建一个index.js文件
const run = require('./reptile/db');
const koa = require("koa");
const Router = require('koa-router');
const router = new Router();
var cors = require('koa2-cors');
const app = new koa();
router.get("/candy",async ctx=>{
var data = await run();
ctx.body = data;
})
app.use(cors());
app.use(router.routes())
app.listen(8080)
新建一个index.html文件
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</head>
<body>
<script>
var url = "http://loaclhost:8080/candy";
$.ajax({
url,
success:res=>{
console.log(res)
}
})
</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