用PHP或Java渲染HTML页面

时间:2012-06-28 14:18:46

标签: php javascript rendering

我正在尝试为网页中的HTML标记获取一些属性,例如

<html>
<head>
    <title>test page</title>
</head>
<body>
    <div id="header" class="clearit" role="banner">
            <div id="headerWrapper">
                <ul id="primaryNav" role="navigation">
                    <li id="musicNav" class="navItem">
                        <a href="/music" class="nav-link">Music</a>
                    </li>
                    <li id="listenNav" class="navItem">
                        <a href="/listen" class="nav-link">Radio</a>
                    </li>
                    <li id="eventsNav" class="navItem">
                        <a href="/events" class="nav-link">Events</a>
                    </li>
                    <li id="chartsNav" class="navItem">
                        <a href="/charts" class="nav-link">Charts</a>
                    </li>
                    <li id="communityNav" class="navItem">
                        <a href="/community" class="nav-link">Community</a>
                    </li>
                    <li id="originalsNav" class="navItem">
                        <a href="http://originals.last.fm" class="nav-link">Originals</a>
                    </li>
                </ul>
          </div>
    </div>
</body>
</html>

例如我需要#headerWrapper的实际高度和宽度,并在我的PHP程序中将它与#musicNav进行比较,因为php是服务器端我无法获得这些属性所以我想添加javascript代码来计算这些属性并将其存储在json文件中,如此代码

<script type="text/javascript">
document.ready(function() {
              var JSONObject= {
                                 "tagname":"headerWrapper",
                                 "height":$("#headerWrapper").height(),
                                 "width":$("#headerWrapper").width()
                              },
                              {
                                 "tagname":"musicNav",
                                 "height":$("#musicNav").height(),
                                 "width":$("#musicNav").width()
                              }
        });
    });  

</script>

然后通过php文件读取它包含我的算法女巫从网页中提取视觉特征。

但我的问题是我需要使用PHP或java中的某些浏览器或渲染引擎渲染带有附加javascript的网页...所以任何人都有这样的东西?我的方法是正确的还是有更好的解决方案?

2 个答案:

答案 0 :(得分:1)

如果您希望呈现一个给定网址的网页,并且需要api来遍历渲染的dom Phantomjs及其apiexamples会对您有所帮助。查看open render

  

PhantomJS是一款带有JavaScript API的无头WebKit。它有快速和   对各种Web标准的本机支持:DOM处理,CSS选择器,   JSON,Canvas和SVG。

答案 1 :(得分:0)

如果我理解正确,您需要一种从Java应用程序控制浏览器的方法。 This 似乎是相关的。 您可能还想要考虑的事项 -

  1. 让应用知道您的浏览器(二进制或其他)。
  2. 从主机上的多个可用浏览器中进行选择。
  3. 考虑跨平台支持。