javascript - 如何使用 Javascript/Node.js 从网站抓取对象?
问题描述
因此,让我首先解释一下我正在努力实现的目标,即使这可能不是正确的方法。
我制作了不和谐的机器人,我的目标是让机器人在启动/运行命令之前检查网站。如果我需要阻止机器人远程启动,我(出于显而易见的原因)不想在代码中添加真/假。
我在我的Express应用程序上设置了一些东西,以便当响应的特定部分与数组中的客户端 ID 匹配时,然后从响应中抓取它说真或假的部分。如果没有,则对它采取行动,如果对象等于 true,则什么也不做。我有这部分,但是我不知道该怎么做的部分是从机器人访问这个“对象”。
有人知道怎么做这个吗?
app.get('/botAuthentication/getToken', (req, res) => {
if(['7838193829389238'].includes(req.query.authorization)) {
res.status(200)
res.send({
botAuth: true
})
} else {
return res
.status(401)
.send( { code: 401, message: "You can't view this page."})
}
});
此代码在浏览器中打开时返回显示的对象。
TLDR;如何使用某种库或方法从网站上获取该对象?
我知道这可能不是正确的方法;我是网络开发的新手。
先感谢您!
解决方案
在您的机器人中,我建议您使用 axios,因为它是一个非常易于使用的 fetch 库,但您可以使用 node-fetch、request 或从许多其他库中挑选......
const axios = require('axios')
// Somewhere in your bot...
axios.get('https://my-bot-command-and-control.example.com/botAuthentication/getToken', {
params: : {
authorization: '7838193829389238'
}
}).then((response) => {
if (response.botAuth) {
// do bot stuff
}
})
几点... 从安全角度来看,您必须对秘密授权代码保密。这意味着不要将它放在 git 和您的开发环境之外,您必须在 SSL 终止后面部署 express 服务器,以便加密您的机器人和 API 之间的连接。否则,您将以明文形式传输授权代码。
推荐阅读
- raspberry-pi - 树莓派 4 保存损坏的 h264 文件?
- javascript - 没有自定义服务器的可选动态路由 - NextJS - 9.5.2
- electron - 从电子 10 中的 BrowserView 打印
- python - 如何在不使用希尔伯特指数的情况下对希尔伯特曲线上的点进行排序?
- flutter - Flutter 中动画值的问题
- regex - .htaccess 规则不适用于奇怪的字符
- django - 使用返回空查询集的 OneToOneFields 过滤
- python - PySpark RDD:将字符串映射到整数,删除无效数据
- c# - 为什么 GUI 组件过时了?
- python - PDFKit & PyPDF2 - 无法读取格式错误的 PDF 文件