node.js - 我如何优化在不同操作系统上运行的网页抓取脚本

标签 node.js windows ubuntu web-scraping puppeteer

我有一个从网站获取一些数据的脚本,它可以在我的本地机器上顺利运行。但是当我尝试在另一台具有不同操作系统的机器上运行它时,它会抛出这个错误:

~/test/Zawali-effect-main# node scrapper.js

[*] Launching Script

[?] Searching for Latest Match ID

[+] Latest Match ID # NaN

[?] Searching for the Earliest Match from 28 Days Ago

[?] Initial Guess

Jump back 3200000 IDs

[-] Bad ID. Shifting by 1

/root/test/Zawali-effect-main/node_modules/core/lib/JsPath.ts:112

InjectedScriptError: TypeError: Cannot read property 'textContent' of null at JsPath.runJsPath (/root/test/Zawali-effect-main/node_modules/core/lib/JsPath.ts:112:13) at runNextTicks (node:internal/process/task_queues:61:5) at processImmediate (node:internal/timers:437:9)


再次在我的 上运行良好 Windows 10 本地机器,但不在 上Ubuntu 20.04 .

最佳答案

Cannot read property 'textContent' of null


...表示您希望出现在页面上并想要处理的元素不存在。我敢打赌,整个页面与您通常得到的不同。
如果您已将脚本部署在具有云提供商的服务器上,则可能是它的 IP 被阻止或标记为可疑。即使基于浏览器用户代理中的操作系统字符串,目标站点也可能更改其内容。
尝试制作屏幕截图并记录您在服务器上获取的页面的 HTML,这可能与本地 Windows 机器上的不同。

关于node.js - 我如何优化在不同操作系统上运行的网页抓取脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72159258/

相关文章:

c# - Windows 服务

c++ - 如何将外部音频流转发到虚拟音频电缆?

windows - Azure 管道 : How to make a task dependent on a previous task?

php - 生成的 Postgresql 进程可以由 spawner PHP 脚本控制吗?

eclipse - PyDev 插件找不到 python 3.4

javascript - 如何检查 Istanbul 尔单个文件的覆盖范围?

node.js - 通过react-scripts将react.js应用程序部署到apache服务器

javascript - JWT 不解码 "JWT malformed"- Node Angular

ruby - 如何使 Ruby 1.9 成为 Ubuntu 上的默认 Ruby?

sql - Sequelize belongsToMany 关联不通过表工作