Tag: cheerio

如何在node.js中使用cheerio获取元素名称

如何在cheerio中获取元素的名称? 相当于jQuery的是.attr('name')但是在cheerio中返回undefined 。

怪异的字符时,使用console.print cheerio + nodejs

我是新来的node.js和写我的第一个脚本来刮一些数据。 有谁知道为什么我在使用这段代码时看到里面带有问号的怪异字符? var express = require('express'); var fs = require('fs'); var request = require('request'); var cheerio = require('cheerio'); var app = express(); var url = 'http://www.ebay.co.uk/csc/all-you-ever-want/m.html?LH_Complete=1&_ipg=50&_since=15&_sop=13&LH_FS=1&=&rt=nc&LH_ItemCondition=3'; request(url, function (error, response, html) { if (!error) { console.log(html); var $ = cheerio.load(html); $('.vip').each(function (i, element) { var link = $(this).text(); console.log(link); }); } }); app.listen(process.env.PORT, process.env.IP) console.log(process.env.PORT); […]

一种方法来知道什么时候所有的callback是在JavaScript中完成的

我有很多调用服务的最后,我想写一个文件我的最后收集服务的所有callback已经返回。 有没有办法确保所有的callback都完成了? for (id in idsCollection) { object.callService(id, function (res) { collection.push(res); }); } filewriter.writetoFile("filename.json", JSon.Stringify(collection)); 编辑:只是logging我用nodeJS cheerio。

(节点)警告:检测到可能的EventEmitter内存泄漏

我写了一个基于cheerio.js和request.js构build的小脚本,用于从订阅代理站点获取联系信息(URL和电子邮件)。 虽然它运行并返回我需要的所有信息,但在运行时,我连续5次收到以下警告: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. Trace at Socket.EventEmitter.addListener (events.js:160:15) at Socket.Readable.on (_stream_readable.js:689:33) at Socket.EventEmitter.once (events.js:179:8) at Request.onResponse (/home/max/Desktop/scraping/node_modules/request/request.js:625:25) at ClientRequest.g (events.js:175:14) at ClientRequest.EventEmitter.emit (events.js:95:17) at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1689:21) at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:120:23) at Socket.socketOnData [as ondata] (http.js:1584:20) at TCP.onread (net.js:525:27) 我的本能告诉我,我可能会得到这个警告,因为我嵌套在另一个请求的请求。 […]

如何使用cheerio从网页中的换行中删除内容

祝大家好日子。 我有2个问题在使用Cheerionetworking抓取。 我经历了可能有我的答案的问题,但找不到回答我的问题的问题,于是我决定提出一个问题。 背景资料:我只学习Javascript约2〜3个月,所以我可能会问一些很有趣的问题,请原谅。 目的:我正在寻找从以下网站刮来的数据 – 我期待得到 自行车商店的名字 自行车商店的地址 自行车店的电话 我已经设法刮掉我需要的数据,但是它们是在一个HTML组中(不知道这是如何调用它,这是我使用的代码。 var request = require('request'); var cheerio = require('cheerio'); var url = 'http://www.togoparts.com/bikeshops/list_shops.php?country=MY'; request(url, function(err, resp, body) { if (err) throw err; $ = cheerio.load(body, { normalizeWhitespace: false }); var doc = $("td[width='52%'].verdana1"); doc.each(function() { var link = $(this); console.log(link.html()); }); }); 结果运行在一个循环中,我可以得到以下内容。 我无法发布图片 – […]

用cheerio模拟button点击

任何人都可以指导我如何模拟与cheeriobutton点击? 该button是一个图像button。 点击后如何处理__dopostback ? 谢谢 编辑:我正在尝试下面的代码 process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; // Ignore 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' authorization error var request = require('request'); var cheerio = require('cheerio'); function postback(url, callback) { request.get(url, function onResponse(err, res, body) { $ = cheerio.load(body); var button = callback(err, $); if (button) { var form = { __EVENTTARGET: button.attr('Button1'), __VIEWSTATE: $('#__VIEWSTATE').val(), __EVENTVALIDATION: $('#__EVENTVALIDATION').val(), __EVENTARGUMENT: $('__EVENTARGUMENT').val(), […]

如何使用cheerio和节点中的请求写入文件?

我使用cheerio和节点中的请求来写一个简单的刮板,就像这个链接: https://www.digitalocean.com/community/tutorials/how-to-use-node-js-request-and-cheerio-to-set-up-simple-web-scraping 我的文件略有不同,URL的格式如下: http : //foo.com/2014/12/,http : //foo.com/2014/11/等。这是: var fs = require('fs'); var request = require('request'); var cheerio = require('cheerio'); var year = ["2014", "2013", "2012", "2011", "2010"]; var yearLength = year.length; var month = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; var monthLength = month.length; var postDate = ''; […]

使用Node.js编辑HTML文件

我已经安静了一下,但没有find解决scheme,我的具体情况。 我已经使用Cheerio模块来parsing一堆的HTML页面,ü我无法做的是编辑或添加HTML代码parsing的HTML。 我想按照他们的类或ID自动编辑每个页面的标题和链接,并按照编辑的方式保存HTML页面。 如果只用Cherrio / FS就可以完成,那就太棒了,但是如果我需要一些其他模块来完成这个任务的话,请给我点启发。

刮刀不使用cheerio jquery返回任何值

试图刮去一个网站的头版( www.ozbargain.com ),以返回标签中的任何内容,其中包含对xbox的引用,但是没有任何内容被返回到控制台。 我相信这个问题是与if语句:包含。 var fs = require('fs'), request = require('request'), cheerio = require('cheerio'); url = 'http://www.ozbargain.com.au'; request(url, function(error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); if($("a:contains('Xbox')").length) { //console.log(this); var el = $(this); var log = el.text(); console.log(log); } else { console.log('hey'); } } }); 我之后的html块。 特别是,我想要一个标签; <h2 […]

尝试使用Node.jsdynamic路由从IMDB中取消电影内容。 但得到undefined在我的output.json文件?

实际上,我试图从节点中使用ImDb来取消任何电影,但是在发出请求之后,我得到了未定义的输出.JSON文件(电影评级和评论应该出现在这里)。 首先,我正在向http://www.imdb.com/find?q= “电影”请求电影应该是dynamic的,以便我可以自己查询。 然后连续编号 的电影我正在向其url的请求,以废除评级和审查 但得到undefined …检查代码,请纠正它 var express = require('express'); var cheerio = require(“cheerio”); var request = require(“request”); var fs = require('fs'); var app = express(); app.get('/ scrape /:movie',function(req,res){ var movie = req.params.movie; option = { protocol : "http:", host: "www.imdb.com", pathname : "/find " , query: "q=movie" } //这里我要求http://www.imdb.com/find?q= '电影' request(option,function(error,request,body) { if(!error […]