在 Windows 上使用 Node.js 抓取网站
尝试让 jsdom(node.js 模块)在 Windows 上工作。 一直抱怨没有为我的节点版本构建。
在 Linux 机器上安装了节点(相同版本,0.5.9,来自源代码)并对其进行了节点处理。 然后我将它复制到Windows机器(在node_modules下)
仍然不行...
有什么想法吗?或者从对节点发出的请求的响应中获得的解析 HTML 的其他建议?
通过 jsdom 使用 jquery 会很方便。
干杯。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我很遗憾地说 jsdom (>=0.2.3) 目前需要一个 C++ 插件,它在 Windows 上运行得不太好。我认为你最好的选择是尝试安装 [email protected] 并解决在 jsdom 窗口上下文中执行 javascript 导致的内存泄漏。
解决方法包括:
document.body.innerHTML = '..new markup..';
的方式替换 DOM目的是摆脱 c++插件,但不幸的是目前不可能。
I'm sorry to say that jsdom (>=0.2.3) currently requires a c++ addon which does not play nice with windows. I think your best bet would be to try and install [email protected] and work around the memory leak caused by executing javascript in the context of jsdom's window.
Workarounds include:
document.body.innerHTML = '..new markup..';
The intention is to move away from the c++ addon, but unfortunately that is not a possibility at this time.
如果node.js不是绝对必须的,请查看我们的 SO-ist @nrabinowitz 的 pjscrape 。它经过测试和证明。
此外,node-scraper 似乎是适合您工作的工具,拥有 222 个观察者和 11 个观察者叉子似乎也相当活跃。可以在自述文件或就在这里。
If node.js is not an absolute must, check out pjscrape by our fellow SO-ist @nrabinowitz. It's tested and proven.
Also, node-scraper seems to be the right tool for your job, with 222 watchers and 11 forks it also seems to be pretty active. A use case can be found in the readme or right here on SO.
我不确定你到底想做什么,但是 node.io 有一个抓取可能符合要求的框架。
I'm not sure exactly what you're trying to do, but node.io has a scraping framework that might fit the bill.
我刚刚开始使用 Node.js 模块 Cheerio,与 jsdom 相比,它:
http://matthewmueller.github.com/cheerio/
抓取示例:
I've just been playing with the node.js module Cheerio, and compared with jsdom, it's:
http://matthewmueller.github.com/cheerio/
Scraping example: