mysql - 使用 PhantomJs、Nodejs 和 MySQL

标签 mysql node.js dom xpath phantomjs

有没有办法使用 PhantomJS 抓取数据,然后用 nodejs XPath 和 DOM 解析结果,然后保存到 MySQL 中?

我已经安装了 PhantomJS 核心和 PhantomJS Node 模块,但尝试从 shell 级别运行 Node 以执行抓取程序,然后设置 cronjobs 以按计划运行它们。

最佳答案

我已经尝试了 Node 和 PhantomJS 之间的各种桥梁,并最终编写了另一个桥梁;)。它叫做phridge并提供了一种将函数传递给 PhantomJS 并将结果返回给 Node 的方法:

// node
phantom.run("h1", function (selector, resolve) {
    // this code runs inside PhantomJS

    phantom.addCookie("cookie_name", "cookie_value", "localhost");

    var page = webpage.create();
    page.customHeaders = {
        Referer: "http://google.com"
    };
    page.settings = {
        userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5)"
    };
    page.open("http://www.google.com", function () {
        var text = page.evaluate(function (selector) {
            return document.querySelector(selector).innerText;
        }, selector);

        // resolve the promise and pass 'text' back to node 
        resolve(text);
    });
}).then(function (text) {
    // inside node again
    console.log("The element contains the following text: "+ text);
});

关于mysql - 使用 PhantomJs、Nodejs 和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18141306/

相关文章:

jquery - 如何使用 jquery 将某些内容附加到空主体

javascript - 选择标题标签时删除粗体和斜体格式

mysql - 如何将 oracle 的 x-devapi 添加到托管在 Google 应用引擎中的 Node js 服务器

javascript - 如何在node.js中指定模块路径

php - 使用 Node 作为 json 从 MySQL 获取 blob 图像并将其打印到 PHP 中

javascript - 如何在 Express 中处理 GET 参数?

javascript - 获取页面上每个元素的 Z-index

php - 选择然后更新计数 mysqli

c# - 将 [图像] 保存并截图到数据库

C#和MYSQL数据库在另一台电脑上