【问题标题】:Web Scraping using Node js使用 Node js 进行网页抓取
【发布时间】:2020-12-04 00:30:01
【问题描述】:

我一直在尝试从网站上抓取一些数据并使用 Node js 将其显示在我自己的网站上。我写了一个工作正常的文件。我可以将其打印到控制台以验证这一点。我想将网页中的数据显示为 HTML 元素。

const puppeteer = require('puppeteer'); 
async function scrapeData(url) {
    const browser = await puppeteer.launch();
    const page =await browser.newPage();
    await page.goto(url);
    
    const [el] = await page.$x('//*[@id="gatsby-focus-wrapper"]/div/div[4]/div/div[2]/div/div/div[2]/div/div[2]');
    const txt = await el.getProperty('textContent')
    const var= await txt.jsonValue();

    console.log({var});
    
    browser.close();
}
scrapeData('webpageToScrape');

我想在我的 HTML 页面中将“var”变量显示为文本。我怎样才能做到这一点?如何将 Node.js 脚本链接到我的静态 HTML 页面?

【问题讨论】:

  • 您目前如何为您的 HMTL 提供服务?
  • 我的 HTML 页面在基于 Linux 的 Web 服务器中提供。
  • 我的意思是从 NodeJS 的角度来看,你使用的是原生的 http 模块吗? express? koa?等
  • 我正在使用快递。
  • 请分享您的代码

标签: javascript html node.js web web-scraping


【解决方案1】:

您可以使用 pug 或 ejs 之类的模板引擎来呈现页面。

返回函数中的var变量

如果您使用的是快递,那么

app.get('/', (req, res) => {
scrapeData('your url').then((resolve)=>{
res.render('link to the template file', {scrapedData: resolve})
})
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2018-02-06
    • 2017-06-23
    • 2011-03-13
    • 2019-04-06
    • 2019-06-23
    相关资源
    最近更新 更多