在 python 和 nodejs 中请求 nasdaq.com

requesting nasdaq.com in python and nodejs

我在 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 时发生。对于所有其他网站,节点获取按预期工作。

节点请求我做错了什么?

使用superagent模块。它对我有用。

const request = require('superagent')

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