我尝试将网站从一个CMS程序化转移到另一个CMS,并且两者的API都已损坏或不存在。在数据库中直接浏览似乎很复杂,所以我需要从一个站点抓取数据并将其输入另一个站点的管理界面。
我的原型使用JSDOM来刮擦和Casper填写表格。 JSDOM的抓取速度比Casper快得多(对我来说很重要,因为我的硬件很旧,而且我可能希望经常运行端到端的测试。而且我希望能够将普通的Node内容作为一部分刮伤。)
Casper坐在自己的过程中(我无法让Spooky工作)。我不是关于进程间通信的线索,而是复制了来自Node文档的spawn()
示例。因此,一旦完成刮擦,Node就会启动Casper。
scrape例程最终将产生大量的JSON。要将这个传递给Casper,我的原型ATM只能在几个示例页面上工作 - 我只是将JSON作为命令行参数传递给子进程。
希望这样可以,因为xargs --show-limits
运行会给我:
Your environment variables take up 2914 bytes
POSIX upper limit on argument length (this system): 2092190
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2089276
Size of command buffer we are actually using: 131072
Maximum parallelism (--max-procs must be no greater): 2147483647
所以我猜我在JSON字符串上有两百万字符的限制,我希望它远远超过我的需要。
当我扩展处理大量JSON数据时,有什么我不考虑可能妨碍事情吗? (很难说有多少)。