首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS抓取.ashx页

NodeJS抓取.ashx页
EN

Stack Overflow用户
提问于 2019-11-26 00:03:39
回答 1查看 119关注 0票数 1

我一直在尝试用node抓取一个Omnik公共页面.ashx。

一个带有图形用户界面的示例页面(不是我的):https://www.omnikportal.com/AjaxService.ashx?ac=upTerminalMain&psid=202&random=0.5716648780507967

我希望在此页面的节点文件中获得的统计信息可以在以下位置找到:https://www.omnikportal.com/AjaxService.ashx?ac=upTerminalMain&psid=202&random=0.5716648780507967

我认为这将是非常简单的,但是我尝试过的每个解决方案(request、request-promise、puppeteer和cheerio的使用)都不会返回一个我可以用来操作另一个array/json对象的值。

代码语言:javascript
复制
//Web scraping Omnik Portal Public
const request = require('request-promise'); //Ajax Request from other websites
const cheerio = require('cheerio'); //JQuery from node

var siteUrl = "https://www.omnikportal.com/AjaxService.ashx?ac=upTerminalMain&psid=202&random=0.5716648780507967";

request(siteUrl, (error, response, html) => {
    if(!error && response.statusCode == 200) {
        console.log(html);
    }
});

带有图形用户界面的页面对于抓取来说是没有问题的,但是每次我只想抓取.ashx页面时,它就会解析为空或json无效。

解决这个问题的最好方法是什么?

这是我的第二个小节点项目,因为我还在学习。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-01-08 23:51:42

使用一些浏览器自动化工具,如Nightmare

代码语言:javascript
复制
export const scrapWithNightmare = (url: string): Promise<string> => {
return new Promise((resolve, reject) => {
    nightmare
        .goto(url)
        .evaluate(function () {
            return document.body.innerHTML;
        })
        .end()
        .then((res) => {
            resolve(res)
        })
        .catch(error => {
            return reject(error);
        });
})  
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59035746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档