我正在嘗試通過網(wǎng)絡(luò)抓取來完成這項(xiàng)任務(wù)。在我的網(wǎng)頁上,我獲取 URL 并查找其標(biāo)簽之間的內(nèi)容<body>。然后,我想輸出在我的網(wǎng)頁上找到的內(nèi)容。我了解到我可以使用request模塊來達(dá)到此目的。問題是,我無法在頁面的 HTML 中顯示結(jié)果,因?yàn)槲覠o法保存 的request工作結(jié)果(在 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模塊的結(jié)果以供以后使用。
使用 Node.js 進(jìn)行網(wǎng)頁抓取
慕哥9229398
2024-01-18 17:12:47