任何好的JavaScript库,允许抓取网站

时间:2014-08-26 19:11:07

标签: javascript web-scraping

我需要一个javascript库来抓取一个Web应用程序。我找到了这个https://github.com/riccardo-forina/status-jquery-crawler,但正如作者所说,这还处于发展的早期阶段。经过大量的谷歌搜索,我找不到任何东西 感谢您提供任何意见

2 个答案:

答案 0 :(得分:5)

Javascript有很多可以使用的工具。

选择工具时最大的问题是,“我的网站是否使用Javascript加载我想要的内容?”。例如,Google的搜索页面几乎都包含在他们发送的HTML中,以响应HTTP GET请求。

其他网站最初可能会使用Javascript加载HTML中未包含的评论,通知或图片。这意味着,如果你刚才说,给我一个站点A的HTML,你得到的页面就不会缺少你想要的大部分内容。

静态网站

对于大多数需要HTML的网站,可以使用一些优秀的node.js抓图库:

x-ray - 一个整齐的包,将cheerio捆绑在声明性刮擦对象中。提供一些简单的结构来构建强大的擦除。

cheerio + request - 这是一个流行的组合,使用cheerio来解析HTML并请求为你获取它。您将找到许多资源来解释请求网页,提取HTML,甚至在需要时使用这些工具添加身份验证和维护会话的基础知识。

artoo.js - 在浏览器抓取实用程序中。对于原型设计和一次性刮擦非常有用。您可以将其添加为书签,并在浏览器开发人员的控制台中运行它。它允许jQuery像选择器,并具有一些基本的跟随逻辑。

动态网站

如果您需要类似浏览器的环境来从您的网站获取内容,您需要查看node.js中的无头网页浏览和驱动程序。 PhantomJS是最受欢迎的,但有many others。警告 - 将PhantomJS与其他Javascript库一起使用,您需要找到node.js驱动程序:

梦魇 - 与PhantomJS对话的节点库,简化了基本的网页工作流程和抓取工作。

SpookyJS - CasperJS的一个节点库,一个构建在PhantomJS之上的工具,它也是一个独立的包。

PhantomJS-Node - 节点最受欢迎的PhantomJS驱动程序。

(抱歉缺少链接 - 我现在没有足够的声誉发布超过2个)

答案 1 :(得分:2)

PhantomJs是基于Javascript的无头webkit之一,因此您可以使用它进行爬网。在PhantomJS上面出现了一些名为Nightmare Js http://www.nightmarejs.org/的新包装器。