例如,我正在尝试获取网页中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 渲染网页......所以有人有这样的事情吗?我的方法是否正确或有更好的解决方案?
如果您想在给定 url 的情况下呈现网页并需要一个 api 来遍历渲染的 domPhantomjs 及其 API 和示例将为您提供帮助。查看open
render
PhantomJS是一个带有JavaScript API的无头WebKit。它具有快速和 对各种Web标准的本机支持:DOM处理,CSS选择器, JSON、Canvas 和 SVG。
如果我理解正确,您需要一种从 java 应用程序控制浏览器的方法。这似乎是相关的。你可能还想解释的事情——
- 让应用程序知道您的浏览器(二进制或其他)。
- 从主机上的多个可用浏览器中进行选择。
- 考虑跨平台支持。