首页 > 解决方案 > 在 python 和 nodejs 中请求 nasdaq.com

问题描述

对于 nasdaq.com 的获取请求,我遇到了以下问题。

我想用 nodejs 抓取一些数据,但即使经过数小时的尝试各种配置,我得到的只是“ECONNRESET”。另一方面,使用 python,它就像一个魅力。目前,我已经编写了一个解决方法,使用 python-shell 和 python 从节点获取数据。

const request = require('request')

const options = {
    url: 'https://www.nasdaq.com/',
    headers: {
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11',
        'Accept-Encoding': '',
        'Allow': '/'
    },
}

request(options, (err, res, body) => {
    console.log(err)
    console.log(res.statusCode)
})

结果是

{ Error: read ECONNRESET
    at TLSWrap.onread (net.js:660:25) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }

from requests import get, Response

res: Response = get('https://www.nasdaq.com/')

print(res.status_code)

结果是

200

这仅在请求 nasdaq.com 时发生。对于所有其他网站,节点按预期工作。

我对节点请求做错了什么?

标签: pythonnode.jsnode-request

解决方案


使用superagent模块。这个对我有用。

const request = require('superagent')

request.get('www.nasdaq.com', (err, res, body) => {
   console.log(err)
   console.log(res.statusCode)
});

推荐阅读