我正在尝试通过网络抓取来完成这项任务。在我的网页上,我获取 URL 并查找其标签之间的内容<body>。然后,我想输出在我的网页上找到的内容。我了解到我可以使用request模块来达到此目的。问题是,我无法在页面的 HTML 中显示结果,因为我无法保存 的request工作结果(在 POST 部分)这是我的代码:var request = require("request");const express = require('express');const app = express();const session = require('express-session');const path = require('path');const bodyParser = require('body-parser');const router = express.Router();app.use(session({secret: 'shhhhhhh', saveUninitialized: true, resave: true}));app.use(bodyParser.urlencoded({extended: true}));var sess;router.get('/', (req, res) => { res.sendFile(path.join(__dirname + '/index.html')); sess = req.session; if (app.get('done') === true) { console.log(app.get('info')); // prints "undefined" app.set('done', false); res.end(` <h1>Show other sites</h1> <form action="/" method="POST"> <input type="text" name="site" id="site" placeholder="url"><br> <button type="submit">go</button> <a href="/">BACK</a> </form><br> <hr> <p>url: ${app.get('site')}</p> <hr> <div> ${app.get('info')} </div> `); } else res.sendFile(path.join(__dirname + '/index.html'));})router.post('/', (req, res) => { sess = req.session; sess.site = req.body.site; app.set('done', false); if (sess.site) { app.set('done', true); request({ uri: `${sess.site}`,}, function(error, response, body) { app.set('info', body); // Here I'm trying to save the scraped result app.set('site', sess.site); } ); } res.redirect('/');})router.get('/clear', (req, res) => { req.session.destroy((err) => { if (err) return console.log(err); res.redirect('/'); })})app.use('/', router);app.listen(3000);console.log("Running at port 3000");请帮助我找出我做错了什么以及如何保存Request模块的结果以供以后使用。
添加回答
举报
0/150
提交
取消