python - 在 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 时发生。对于所有其他网站,节点按预期工作。
我对节点请求做错了什么?
解决方案
使用superagent
模块。这个对我有用。
const request = require('superagent')
request.get('www.nasdaq.com', (err, res, body) => {
console.log(err)
console.log(res.statusCode)
});
推荐阅读
- android - 在 Android 中使用 runOnUiThread 更改 TextView 文本
- bash - 主机和来宾之间的文件锁定
- google-chrome - 谷歌浏览器计算器给出了有趣的答案
- html - 如何在 2 个域之间共享数据
- java - GC突然长时间暂停的原因
- javascript - 输入类型按钮 onclick 功能不起作用
- python - NameError - 用于导入文件的自定义用户函数中的“名称未定义”
- java - 通过eclipse将项目添加到weblogic时出现SAXNotRecognizedException
- sql-server - 如何将 Nvarchar 值转换为时间?
- c# - 将生成的文件保存在服务器上,而不是在 C# 中将其作为下载提供给用户