如何请求http页面,然后执行js函数,然后返回正文?

时间:2019-05-12 03:58:17

标签: node.js

我有此代码来请求页面并返回正文

const https = require('https');

https.get('https://www.example.com', (resp) => {
let data = '';
resp.on('data', (chunk) => {
    data += chunk;
});
resp.on('end', () => {
    console.log(data);
});
});

我想在获取正文之前在页面内调用一个函数。

例如,页面上有一个按钮或链接,该按钮或链接调用一个函数来执行某项操作,而我想在获取主体之前调用相同的按钮。

我要说的是,我不想在页面中编写和执行自己的代码,我只想使用页面中已经存在的某些代码,就像普通用户只是按下该按钮一样。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要使用Puppeteer模拟浏览器。

使用http / s发送请求时,您获得的只是来自服务器的数据。浏览器负责理解并将接收到的html / css / javascript组装为用户可以与之交互的内容-在您的情况下,根据用户事件调用特定功能。

因此,要调用该功能(以及该功能与页面的html进行交互),您需要使用无头浏览器(如Puppeteer)构造DOM。您也可以使用PhantomJS,但我建议不要这样做。

以防万一,您不需要在此服务器端工作,可以使用浏览器扩展来完成工作。

[1] https://developers.google.com/web/tools/puppeteer/