Tag: networking抓取

networking抓取:当使用Mikeal的node.js请求模块时,接近15%的结果是部分下载

我正在刮一个灵感画廊,并使用Mikeal的node.js request库将图像下载到磁盘。 问题是,一大堆图像,主要是在下载会话开始,最终部分或全部下载。 这在下面的图片中显示(按Date Modifiedsorting的文件夹)。 在前17张图像之后,其余的可以从第3行第4列开始下载。 以下是我使用的node.js / request代码的相关部分: // images is an array of URLs to .jpg images for( var i = 0, len = images.length ; i < len ; i++ ) { request.get( images[i] ).pipe( fs.createWriteStream(destinationFilename) ) } 我正在使用request从存储在images数组中的URL中获取图像数据,并将其stream到将数据写入磁盘的数据stream 。 大多数情况下,这个工作正常,但下载的1%到15%之间的部分下载。 我试图使用stream对象的stream事件来获取bytesWritten并将其与bytesTotal进行比较,但是这种方法没有得到我的任何地方。 还有其他方法可以解决这个问题吗?

从一个IP访问节点

我正在通过node.js开发一个Web应用程序,通过一个端口连接到networking中的不同客户端。 在下图中,Web应用程序在IP地址为10.0.9。*的所有PC上运行。 包含共享相同IP地址但具有其他本地唯一地址的以下节点(使用IP 192.168.11。*)的最佳方式是什么? 还是有另一个解决这个问题的办法? 我可能会想到,他们需要有独特的10.0.1。*地址。

用户提交页面的节点堆栈

我打算创build一个“雅虎答案”或“维基答案”types的网站,人们可以注册并发布问题,也可以回答问题。 (这个网站将面向提问和回答math/化学/物理作业的问题,它将被configuration为使用户可以在问题和答案部分中inputLaTeX标记)。 实际上,它将成为回答作业问题的堆栈,在这里人们可以提出问题,发布解决scheme,并提出问题和解决scheme,比如如何在stackoverflow上。 我在http://www.university-answers.com/上有了一个原型,但我还没有实现用户注册,或用户提交了问题或答案。 我已经考虑使用Passport进行用户身份validation,并试图遵循一些获取用户身份validation并将其存储在mongodb上的教程 (如本教程 )。 我可以获取用户名和密码进行身份validation并存储在数据库中,以便以后可以login。 但是,我不知道如何跟踪每个用户提交的问题和提交的答案。 例如,在stackoverflow我可以去我的帐户的页面,看看我已经提交了什么问题,我已经提交了什么答案。 我是否需要在数据库中存储用户的意见和问题以及用户名和密码? 编辑:作为研究后的后续问题。 我阅读了数据模型devise,并且我推断可以为数据库创build以下结构: user{ _id:<object1>, username: input-data, password: however-this-is-done, questions[]: <object2>[], //an array of <object2> type objects? if this is possible solutions[]: <object3>[], //an array of <object3> objects, which are submitted //solutions. if it is possible to create arrays of "references" } question{ _id:<object2>, user_id:<object1>, […]

在使用请求时的空白内容

我有以下代码: var request = require('request'); var cheerio = require('cheerio'); var URL = require('url') var fs = require('fs') fs.readFile("urls.txt", 'utf8', function(err, data) { if (err) throw err; var urls = data.split('\n'); urls = urls.filter(function(n){return n}); for(var i in urls) { request(urls[i], function(err, resp, body) { if (err) throw err; $ = cheerio.load(body,{lowerCaseTags: true, xmlMode: true}); $('item').each(function(){ […]

如何访问Node.js的请求模块的输出

有几个教程描述如何使用request和cheerio来抓取网站。 在这些教程中,他们将输出发送到控制台,或者将带有fs的DOMstream式传输到文件中,如下例所示。 request(link, function (err, resp, html) { if (err) return console.error(err) var $ = cheerio.load(html), img = $('#img_wrapper').data('src'); console.log(img); }).pipe(fs.createWriteStream('img_link.txt')); 但是如果我想在脚本执行期间处理输出呢? 我怎样才能访问输出或发送callback用函数? 当然,我可以加载img_link.txt并从那里获取信息,但是这样会花费很多而且没有意义。

无法访问表示从控制台,Windows 7的expression闲谈

我是新的节点js,我正在试图安装全球快递 npm i -g express 全部完成,但是当我inputexpress时 – 帮助它说它不在里面或外面的命令,但是当我进入主pipe它运行OK。 我查看了pathof express,没有任何.cmd文件。 如果问题是这样的。 我应该如何解决它? 请帮忙。

当使用Nightmare.js或phantom.js来抓取网站时,为什么会显示幻像出现错误

我试图用phantom.js编写一个web-spider。 但是,我收到了很多错误信息,我不知道为什么。 我的代码如下所示: 使用Nightmare.js : var Nightmare = require('nightmare'); new Nightmare() .goto('http://www.amazon.com/Aroma-Housewares-ASP-137-3-Quart-Super/dp/B00024JQ3Q') .evaluate( function(){ return document.getElementById('priceblock_ourprice').textContent; }, function( numAnchors ){ console.log(numAnchors); }) .run(); 使用phantom.js : var page = require('webpage').create(); console.log('The default user agent is ' + page.settings.userAgent); page.open('http://www.amazon.com/Aroma-Housewares-ASP-137-3-Quart-Super/dp/B00024JQ3Q', function(status) { if (status !== 'success') { console.log('Unable to access network'); } else { var ua = […]

Javascript – 只需确定浏览器连接到哪个networking

我build立了一个节点js web服务器,它在JSON文件中提供图片链接。 一个链接指的是互联网上的图像,另一个链接指的是我家服务器中的本地目录。 networking服务器是在线的,而不是在我的家庭服务器上。 为了带宽使用目的 ,Web服务器仅提供图像链接。 如果客户端通过家庭连接进行连接,则使用本地链接,如果不是,则使用互联网链接。 目前,我提供一个包含链接的JSON文件,并且始终在客户端select互联网,因为我不知道如何让客户了解他在我的本地networking上。 有什么东西存在吗? 我已经完成了有关获取路由器(第一跳),networkingssid的mac地址的研究,但似乎只能用JavaScript才能实现。 所以,基本上,这是我的设置: 家庭networking : 家庭服务器(本地存储的图像) 通过此连接连接的潜在客户端 网页内容: Web服务器(节点js) FTP(图片存储) 潜在的客户端连接 在任何情况下,客户端都需要互联网连接,因为节点服务器在线。 但是,如果客户端与本地主服务器位于同一个(本地networking)networking上,则应使用本地链接获取映像。 我需要这两个解决scheme之一: 客户知道他是否在我的本地networking,然后拿起良好的链接 Web服务器知道客户端来自哪里,并直接提供良好的链接(所以,在客户端没有问题)。 这个问题是我的networking服务器不在我的家庭networking上。

如何在PhantomJS中使用jQuery循环表格行

我试图学习一些networking与node.js刮。 我select了一些示例页面,例如http://www.imdb.com/chart/top 。 然后我试图用评分来刮掉所有的标题。 我创build了一个PhantomJS脚本(我需要使用它,因为它是dynamic的,所以它使用JavaScript上的网站)。 它的工作,但我不知道如何为每个标题循环。 例如: $('.lister-list tr').each( function(){ $(this).find('.titleColumn').text().replace(/\n/g, ''); $(this).find('.imdbRating').text().replace(/\n/g, ''); } ); 然后我把它放在一个JSON文件中。 在这一刻,我只能把数据没有循环。 这是我的脚本: var phantom = require('phantom'); var fs = require('fs'); phantom.create(function (ph) { ph.createPage(function (page) { page.open("http://www.imdb.com/chart/top", function (status) { page.evaluate(function () { //search datajquer var k_title = $('.lister-list tr .titleColumn').first().text().replace(/\n/g, ''); var k_rating = $('.lister-list tr .imdbRating').first().text().replace(/\n/g, […]

查尔斯应用程序closures时,为什么不能访问网站?

对不起,我的英文很差,下面的文字如果不stream利,也看起来不好意思 我下载了一个应用程序,它的名字叫查尔斯 ,有一次当我把它关掉的时候,我发现当我打开它时,我可以访问网站,但是当我再次closures它的时候,我尝试访问网站,我无法访问。 然后我尝试去互联网search解决scheme,我被要求重新启动,或重新启动我的电脑,我甚至重新下载软件,仍不能浏览网站