如何在PhantomJS中增加访客会话持续时间?

时间:2017-02-25 13:52:03

标签: javascript cookies phantomjs analytics

我对PhantomJS很陌生,但现在我正在测试我的网页+ page_analytics。我的代码可以:访问网站并创建一个.png截图。之后,我查看网页分析并查看:1个用户,但平均会话持续时间为0:0:0秒。如何让PhantomJS访问我的页面并在页面上停留几秒钟或几分钟?我必须添加cookies或其他东西吗? 代码:

var page = require('webpage').create();
page.settings.userAgent = 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02';
page.open('http://****.blogspot.com/', function() {

  page.render('k5.png'); 
  phantom.exit();
});

3 个答案:

答案 0 :(得分:1)

如果您想在拍摄屏幕截图之前等待一段时间,那么您是否尝试过setTimout?可能是这样的事情从我的头顶。 (设置为5秒但你可以增加它!)

setTimeout(function() {
    page.render('k5.png'); 
    phantom.exit();
}, 5000)

答案 1 :(得分:0)

要使用PhantomJS增加访问者会话持续时间,您必须了解Google Analytics的工作原理(Google Analytics和几乎所有其他类似工具)。 当您访问网站上的第一页时,这些工具会放置一个cookie。当您从此页面移至第二页时,他们会读取您在第一页访问Cookie时的时间,并计算此时间与当前时间之间的差异。

请注意,您只访问网站上的某个页面,此访问将在报告中显示00:00:00。

如果您需要阅读并保存第一页访问PhantomJS的Cookie,然后在访问第二页之前添加它们。 为了增加会话的长度,您需要在setTimeout和页面呈现之间执行page.open

不幸的是,我已经使用PHP PhantomJS完成了所有这些工作,因此我无法帮助您进行编码。

答案 2 :(得分:-1)

或者,如果您使用>幻影1.2这也应该工作,是一个更好的解决方案。

   try
        {
            string mydbConnection = "datasource=localhost;port=3306;username=root;password=Greenford123;";
            MySqlConnection connDB = new MySqlConnection(mydbConnection);
            MySqlCommand cmdDataBase = new MySqlCommand("SELECT * FROM project.student", connDB);
            MySqlDataReader DBReader;
            connDB.Open();
            DBReader = cmdDataBase.ExecuteReader();
            while (DBReader.Read())
            {
                List<string> mylist = new List<string>();
                mylist.Add(DBReader.ToString());

                foreach (var item in mylist)
                {
                    MessageBox.Show("The details are " + item);
                }  
            }
            connDB.Close();
        }
        catch(Exception ex)
        {
            MessageBox.Show("Error! " + ex);
        }

http://phantomjs.org/api/webpage/handler/on-load-finished.html