使用 node.js 抓取时使用 jQuery 访问 CSS 值
Posted
技术标签:
【中文标题】使用 node.js 抓取时使用 jQuery 访问 CSS 值【英文标题】:Access CSS values with jQuery when scraped with node.js 【发布时间】:2012-04-24 05:51:40 【问题描述】:我正在使用 node.js(基本上)抓取页面,然后 jQuerify 结果以访问某些元素的 CSS 值。但是,由于某种原因, .css("something") 总是返回一个空值。例如。但是,.text() 工作正常。有什么提示吗?是否需要先输出抓取的页面才能访问 CSS?
var request = require('request');
var jsdom = require('jsdom');
var req_url = 'URL';
request(uri: req_url, function(error, response, html)
if(!error && response.statusCode == 200)
var window = jsdom.jsdom(html).createWindow();
jsdom.jQueryify(window, 'http://code.jquery.com/jquery-1.4.2.min.js', function()
var bg = window.$("#ID").css("color");
console.log(bg);
);
);
【问题讨论】:
【参考方案1】:我认为 .css() 只会返回给定元素的内联 css。
不幸的是,如果没有活动的浏览器,您将很难做到。
您应该研究一下 PhantomJS——它很容易与 node.js 结合,并充当一个无头 webkit,您可以将 javascript 注入其中。
【讨论】:
我认为连内联css都无法读取。但是 phanom.js 确实看起来非常好,并且适合这项任务。谢谢。以上是关于使用 node.js 抓取时使用 jQuery 访问 CSS 值的主要内容,如果未能解决你的问题,请参考以下文章
Node.js 和 MongoDB:保存集合还是每次都抓取它们?