最好的办法是使用Node.js抓取网站内容。我想构建一些非常非常快的东西,可以以kayak.com的方式执行搜索,在这种情况下,一个查询被分派到几个不同的站点,结果被抓取,并在可用时返回给客户端。
让我们假设这个脚本只提供JSON格式的结果,我们可以直接在浏览器中或在另一个web应用程序中处理它们。
以下是几个起点:
Using node.js and jquery to scrape websites
有谁有什么想法吗?
发布于 2011-03-12 23:24:01
Node.io似乎接过了蛋糕:-)
发布于 2012-07-14 23:44:09
前面提到的所有解决方案都假定本地运行刮板。这意味着您的性能将受到严重限制(由于它们是按顺序或在有限的一组线程中运行)。一个更好的方法,imho,是依靠现有的,尽管是商业的,抓取网格。
下面是一个示例:
var bobik = new Bobik("YOUR_AUTH_TOKEN");
bobik.scrape({
urls: ['amazon.com', 'zynga.com', 'http://finance.google.com/', 'http://shopping.yahoo.com'],
queries: ["//th", "//img/@src", "return document.title", "return $('script').length", "#logo", ".logo"]
}, function (scraped_data) {
if (!scraped_data) {
console.log("Data is unavailable");
return;
}
var scraped_urls = Object.keys(scraped_data);
for (var url in scraped_urls)
console.log("Results from " + url + ": " + scraped_data[scraped_urls[url]]);
});
在这里,抓取是远程执行的,只有当结果准备就绪时,才会向代码发出回调(还有一个选项可以在结果可用时收集结果)。
您可以在https://github.com/emirkin/bobik_javascript_sdk下载Bobik client proxy SDK
发布于 2012-04-25 05:16:06
您并不总是需要jQuery。例如,如果您使用从jsdom返回的DOM,就可以很容易地自己获取所需的内容(同时考虑到您不必担心xbrowser问题)。看:https://gist.github.com/1335009根本不是从node.io中拿走的,只是说你可以自己做这件事,这取决于...
https://stackoverflow.com/questions/5211486
复制相似问题