Tag: 屏幕抓取

内存泄漏在Node.js刮刀

这是一个使用Node.js编写的JavaScript简单的刮板,用于抓取Wikipedia中的元素周期表数据。 依赖关系是用于DOM操作的jsdom和用于排队的chain-gang 。 它工作得很好,大部分时间(它不能很好地处理错误),代码也不错,我敢说是一个尝试,但是有一个严重的错误 – 它泄漏内存可怕,在任何地方从每个元素的计算机内存的0.3%到0.6%,这样当它领先的时候,它会在接近20%的地方使用,这显然是不可接受的。 我已经尝试使用分析器,但是我没有发现它们有帮助或难以解释数据。 我怀疑它与processElement传递的方式有关,但我很难将队列代码重写成更优雅的东西。 var fs = require('fs'), path = require('path'), jsdom = require("jsdom"), parseUrl = require('url').parse, chainGang = require('chain-gang'); var chain = chainGang.create({ workers: 1 }); var Settings = { periodicUrl: 'http://en.wikipedia.org/wiki/Template:Periodic_table', periodicSelector: '#bodyContent > table:first', pathPrefix: 'data/', ignoredProperties: ['Pronunciation'] }; function writeToFile(output) { var keys = 0; // Huge […]

在PHP中解释JavaScript

我希望能够运行JavaScript并获得PHP的结果,并想知道是否有一个PHP库,允许我parsing出来。 我的第一个想法是使用node.js,但由于node.js可以访问套接字,文件和东西,我想我宁愿避免这种情况。 理由:我在PHP中进行屏幕抓取,并遇到了很多情况,前端的JavaScript正在生成数据,我想避免编写专门的过滤函数在JavaScript上进行处理,因为需要很多时间。 更一般的情况是直接parsingJavaScript。 Downvoting:我真的不知道这个问题有什么争议,现在的networking爬虫已经知道了,唯一的区别是他们往往不会用PHP编写。 [1] [1] http://blogs.forbes.com/velocity/2010/06/25/google-isnt-just-reading-your-links-its-now-running-your-code/

什么是在node.js屏幕抓取最优雅的方式?

我正在一起使用在node.js中使用大量屏幕抓取的networking应用程序。 我觉得自己在每一个angular落都要面对潮stream。 必须有一个更简单的方法来做到这一点。 最值得注意的是,两件事情是令人恼火的: Cookie传播。 我可以将“set-cookie”数组从响应头中取出,但是执行string操作来将数组parsing出数组感觉非常恶心。 redirect以下。 我希望每个请求都能在302状态码返回时通过redirect。 我遇到了两件看起来很有用的东西,但最后还是无法使用: http://zombie.labnotes.org/ ,但它没有HTTPS支持,所以我不能使用它。 http://www.phantomjs.org/ ,但不能使用它,因为它不(看起来)与node.js集成。 这也是我所做的很重的。 有没有JavaScript的screenscraping-esque图书馆传播cookies,遵循redirect,并支持HTTPS? 任何关于如何使这更容易的指针?

用Node.js实时刮取网页

什么是一个好的是用Node.js刮取网站内容。 我想创build一个非常非常快速的东西,可以执行kayak.com样式的search ,其中一个查询分派到几个不同的站点,结果被删除 ,并在客户端可用时返回给客户端。 我们假设这个脚本应该只提供JSON格式的结果,我们可以直接在浏览器或其他Web应用程序中处理它们。 几个起点: 使用node.js和jquery来抓取网站 任何人有任何想法?