像真实浏览器一样使用phantomjs打开选项卡

暴民

PhantomJS是一款无头WebKit浏览器。我可以以此打开一个URL,并获取每秒更新的页面内容。

但是我需要同时获取许多(100)页面的内容。

所有页面必须同时打开并每秒刷新。

可能只有一页,但我不知道如何一次从多个页面检索。

这是来自PhantomJS网站示例代码

console.log('Loading a web page');
var page = require('webpage').create();
var url = 'http://www.phantomjs.org/';
page.open(url, function (status) {
  //Page is loaded!
  phantom.exit();
});

我可以一次使用许多PhantomJS实例吗?我似乎不是最好的方法。有谁知道如何仅打开一个PhantomJS实例并从多个页面获取内容?

拉斯科海岸

这是我之前用来解析电子商店商品并为这些商品的每一页放置HTML代码的代码

希望对您有所帮助!

var RenderUrlsToFile, system, url_string_for_array;
var arrayOfUrls = new Array();

system = require("system");

RenderUrlsToFile = function(urls, callbackPerUrl, callbackFinal) {
var getFilename, next, page, retrieve, urlIndex, webpage, link_name, sex;

var fs = {};
fs = require('fs');

urlIndex = 0;
webpage = require("webpage");
page = null;
// getFilename = function() {
//     return "parsed/" + urlIndex + ".png";
// };
next = function(status, url, file) {
    page.close();
    callbackPerUrl(status, url, file);
    return retrieve();
};
retrieve = function() {
    var url;
    if (urls.length > 0) {
        url = urls.shift();
        urlIndex++;
        page = webpage.create();
        page.viewportSize = {
            width: 800,
            height: 600
        };
        page.settings.userAgent = "Phantom.js bot";
        return page.open("http://" + url, function(status) {
            var file;
            // file = getFilename();
            if (status === "success") {
                return window.setTimeout((function() {
                    // page.render(file);

                    var js = page.evaluate(function () {
                            return document;
                        });

                    fs.write('your_file_path'.html', js.all[0].outerHTML, 'w');

                    return next(status, url, file);
                }), 100);
            } else {
                return next(status, url, file);
            }
        });

    } else {
        return callbackFinal();
    }
};
return retrieve();
};

if (system.args.length > 1) {
arrayOfUrls = Array.prototype.slice.call(system.args, 1);
} else {

------------您的代码的主要部分------

例如:我需要解析电子商店中的商品,因此我选择了第一页,然后为确切数量的页面设置了“ for”

url_string_for_array = "www.lamoda.ru/c/559/accs-muzhskieaksessuary/?genders=men&page=1";

for(var k=2; k<20; k++)
    {
        url_string_for_array += ",www.lamoda.ru/c/559/accs-muzhskieaksessuary/?genders=men&page="+k;
    }

arrayOfUrls = url_string_for_array.split(',');
}

RenderUrlsToFile(arrayOfUrls, (function(status, url, file) {
if (status !== "success") {
    return console.log("Unable to render '" + url + "'");
} else {
    return console.log("Rendered '" + url + "'");
}
}), function() {
return phantom.exit();
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于TFS 2012的报告和设置在单独的浏览器窗口中打开,而不是在VS 2012 IDE中打开选项卡

来自分类Dev

Ext4.2.1如何从另一个浏览器选项卡中打开带有小部件的新浏览器选项卡

来自分类Dev

如何知道浏览器选项卡是否已使用Javascript打开?

来自分类Dev

在Python中使用Webbrowser模块打开选项卡

来自分类Dev

使用cmd在Internet Explorer中打开选项卡

来自分类Dev

如何使用ASP.NET和C#在新的浏览器选项卡中打开任何文件?

来自分类Dev

VBA [EXCEL 2013]:自动化:在同一浏览器窗口/选项卡中打开链接

来自分类Dev

我如何从Origin选项卡获取新打开的浏览器选项卡名称?

来自分类Dev

像浏览器一样检索网页内容

来自分类Dev

每个站点所有打开的选项卡的浏览器通知仅一次

来自分类Dev

像浏览器一样的Python请求?

来自分类Dev

打开一个新的浏览器选项卡

来自分类Dev

当像Firefox浏览器一样打开更多选项卡时,我们如何获得导航切换

来自分类Dev

Xpages链接打开“新浏览器”选项卡

来自分类Dev

在Python中使用Webbrowser模块打开选项卡

来自分类Dev

如何像浏览器游戏一样设置倒数计时器?

来自分类Dev

如何使用Selenium WebDriver在同一浏览器的另一个选项卡上打开URL?

来自分类Dev

Microsoft Edge浏览器的缩略图选项卡默认打开,而不是微型选项卡

来自分类Dev

在AngularJS中,如何使用ng-click在iPad浏览器的新选项卡中打开下载pdf

来自分类Dev

像浏览器一样检索网页内容

来自分类Dev

无法在浏览器中打开新选项卡。它在同一个选项卡中加载第二个 url

来自分类Dev

单击链接打开选项卡

来自分类Dev

使用javascript在IE浏览器的新选项卡中打开URL的最佳方法是什么?

来自分类Dev

无法使用 Selenium Webdriver 在浏览器中打开新选项卡

来自分类Dev

是否可以像网站一样在 Kibana 中集成其他选项卡?

来自分类Dev

如何像使用innerText一样获取文本,但适用于所有浏览器

来自分类Dev

如何进入 Docker 容器,启动 vpn 并像使用 VM 一样使用我的网络浏览器

来自分类Dev

如何使用python在Web浏览器中打开选项卡

来自分类Dev

像亚马逊一样在浏览器关闭后我应该学习什么来存储购物卡?

Related 相关文章

  1. 1

    基于TFS 2012的报告和设置在单独的浏览器窗口中打开,而不是在VS 2012 IDE中打开选项卡

  2. 2

    Ext4.2.1如何从另一个浏览器选项卡中打开带有小部件的新浏览器选项卡

  3. 3

    如何知道浏览器选项卡是否已使用Javascript打开?

  4. 4

    在Python中使用Webbrowser模块打开选项卡

  5. 5

    使用cmd在Internet Explorer中打开选项卡

  6. 6

    如何使用ASP.NET和C#在新的浏览器选项卡中打开任何文件?

  7. 7

    VBA [EXCEL 2013]:自动化:在同一浏览器窗口/选项卡中打开链接

  8. 8

    我如何从Origin选项卡获取新打开的浏览器选项卡名称?

  9. 9

    像浏览器一样检索网页内容

  10. 10

    每个站点所有打开的选项卡的浏览器通知仅一次

  11. 11

    像浏览器一样的Python请求?

  12. 12

    打开一个新的浏览器选项卡

  13. 13

    当像Firefox浏览器一样打开更多选项卡时,我们如何获得导航切换

  14. 14

    Xpages链接打开“新浏览器”选项卡

  15. 15

    在Python中使用Webbrowser模块打开选项卡

  16. 16

    如何像浏览器游戏一样设置倒数计时器?

  17. 17

    如何使用Selenium WebDriver在同一浏览器的另一个选项卡上打开URL?

  18. 18

    Microsoft Edge浏览器的缩略图选项卡默认打开,而不是微型选项卡

  19. 19

    在AngularJS中,如何使用ng-click在iPad浏览器的新选项卡中打开下载pdf

  20. 20

    像浏览器一样检索网页内容

  21. 21

    无法在浏览器中打开新选项卡。它在同一个选项卡中加载第二个 url

  22. 22

    单击链接打开选项卡

  23. 23

    使用javascript在IE浏览器的新选项卡中打开URL的最佳方法是什么?

  24. 24

    无法使用 Selenium Webdriver 在浏览器中打开新选项卡

  25. 25

    是否可以像网站一样在 Kibana 中集成其他选项卡?

  26. 26

    如何像使用innerText一样获取文本,但适用于所有浏览器

  27. 27

    如何进入 Docker 容器,启动 vpn 并像使用 VM 一样使用我的网络浏览器

  28. 28

    如何使用python在Web浏览器中打开选项卡

  29. 29

    像亚马逊一样在浏览器关闭后我应该学习什么来存储购物卡?

热门标签

归档