Articles of networking抓取

“npm install”在中国死亡

它在使用npm安装node.js应用程序的依赖关系时停止。 但在中国以外没有任何问题。 谁知道在VPN/SSH channel旁工作的方法。 $ npm install npm http GET https://registry.npmjs.org/jade npm http GET https://registry.npmjs.org/formidable # … … halt for hours and hours … march 2014 # … … halts times after times …

networking工人vs child_process在Node.js CPU密集型function

我正在尝试使用node-unfluff ,从HTMLstring中提取内容。 但是,通常需要〜200ms才能运行。 由于它同步运行,这太慢了。 我想让它asynchronous运行。 据我所知,我的select是networking工作者( https://github.com/audreyt/node-webworker-threads )或child_process ( https://nodejs.org/api/child_process.html )。 还有其他更好的select吗? 如果不是这样,在速度或其他因素方面哪个更好? 编辑: 还有Threadsàgogo( https://github.com/xk/node-threads-a-gogo )和小工作者( https://github.com/avoidwork/tiny-worker )。 WebWorker线程不支持require ,所以这不再是一个选项。 通过使用它的load函数,可以使用Threadsàgogo来require文件,但是这看起来像是一个拙劣的解决方法。 目前Github上只有26个小星星,所以我很犹豫在生产代码中使用它。 它支持require 。 我正在考虑使用child_process编写我自己的WebWorker实现,如果没有更好的select。

在nodejs中获取UDP的目标地址

我的服务器在UDP端口上侦听,也收到广播消息。 如果收到的消息直接发送到我的IP或广播地址,我可以检测到? rinfo只是给我的发件人信息

dynamic分页与噩梦/电子(页面刮)

我正在尝试用Nightmare / Electron来抓取dynamic分页网站。 我没有看到一种方法来执行一个do …直到与噩梦function或链接评估调用与逻辑的方式。 下面是一个简单的代码示例,仅仅使用Google语句并从第1页返回结果hrefs。我希望代码能够在结果中的每个页面上继续。 var Nightmare = require('nightmare'); var vo = require('vo'); vo(function* () { var nightmare = Nightmare({ show: true }); var links = yield nightmare .goto('http://www.google.com') .wait('input[title="Search"]') .click('input[title="Search"]') .type('input[title="Search"]', 'Anequim Project') .click('input[name="btnK"]') .wait(600) .evaluate(function(){ var linkArray = []; var links = document.querySelectorAll('h3.r a'); for (var i = 0; i < links.length; […]

Node.js:挂钩repl到远程节点服务器

假设我有一个在mysite.com上运行的节点服务器。 有没有办法设置该服务器,以便我可以使用节点的repl API从我的本地机器安全地连接到它?

节点请求某个站点大部分时间都会导致ETIMEDOUT错误

眼镜 以下是我正在运行的系统的一些背景信息: Ubuntu v 14.04 节点v4.4.0 节点request模块v2.69.0 所有这些都在位于纽约中心的DigitalOcean液滴/服务器上进行。 问题描述 所以我运行下面的js文件: var request = require('request'); var url = 'http://www.supremenewyork.com/'; request(url, function(err, res, body) { if (err) { console.log(err); return; } console.log('body:', body); }); 在我的液滴上。 大概70-80%的时间我尝试这个,现在每一次我尝试这个,我会得到像这样的ETIMEDOUT错误: { [Error: connect ETIMEDOUT 52.6.25.180:80] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: '52.6.25.180', port: 80 } 值得注意的是,这些错误似乎是在“波涛”中出现的。 也就是说,我会设法在一段时间内得到一些请求,然后是一串ETIMEDOUT错误。 错误发生的频率比我能够通过大约3:1的错误成功率得到我的请求的次数要多得多。 在我自己的电脑上(运行OS X […]

如何从Node.js发出networking请求时指定networking接口?

在http.request或net.connect ,是否有一个选项可以指定一个networking接口来启动连接? 编辑:操作系统级别AFAIK我可以指定地址级别,或负载平衡到路由表。 但是在我的软件中select接口的方式不止这些,我想知道我是否可以在代码中做到这一点。

如何从用户控制台input删除新行

如何从Node.js中的用户input中删除新行? 代码: var net = require("net"); var clientData = null; var server = net.createServer(function(client) { client.on("connect", function() { client.write("Enter something: "); }); client.on("data", function(data) { var clientData = data; if (clientData != null) { client.write("You entered " + "'" + clientData + "'" + ". Some more text."); } }); }); server.listen(4444); 比方说,我在控制台中键入“testing”,然后返回以下内容: You entered […]

我可以快速扫描本地networking的特定开放端口吗?

我想知道是否有方法来扫描我的本地networking的IP范围为特定号码的开放端口。 本质上,我正在寻找nodejs来查找特定types的客户端而不知道他们的IP地址。 在这种情况下,在端口14150上侦听的RFID阅读器。 我想这个扫描速度很快,所以我不希望每个IP地址之间有一个很长的超时时间。 它们都应该发生得很快,可能在最多几秒钟内,对于多达255个客户端的整个本地IP范围,不包括我自己的IP。 我写了代码,做我想要的,但它是痛苦的缓慢…我想看看如果我可以使这个速度更快通过连接,并得出如果连接不能在20ms内给定的IP。 我想捕获数组中的实际连接,然后我可以将其用于其他目的。 var net = require('net'); // Required to create socket connections var ip = 254; //IP address to start with on a C class network function checkConnect () { ip–; var thisIP = '192.168.1.' + ip; //concatenate to a real IP address var S = new net.Socket(); S.connect(80, thisIP); […]

NodeJS x-ray web-scraper:如何关注链接并从子页面获取内容

所以我试图用node.js x-ray抓取框架来刮取一些内容。 虽然我可以从单个页面获取内容,但我无法理解如何关注链接并从一个子页面获取内容。 X射线githubconfiguration文件中有一个示例,但如果将代码更改为其他某个网站,则会返回空数据。 我简化了我的代码,并抓住了这个例子的SO问题。 以下工作正常: var Xray = require('x-ray'); var x = Xray(); x('http://stackoverflow.com/questions/9202531/minimizing-nexpectation-for-a-custom-distribution-in-mathematica', '#content', [{ title: '#question-header h1', question: '.question .post-text' }]) (function(err, obj) { console.log(err); console.log(obj); }) 这也适用: var Xray = require('x-ray'); var x = Xray(); x('http://stackoverflow.com/questions', '#questions .question-summary .summary', [{ title: 'h3', question: x('h3 a@href', '#content .question .post-text'), }]) (function(err, obj) […]